Browse Source

#定时任务抽离

zhongwei
yang_shj 2 years ago
parent
commit
b6fbe31558
  1. 17
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/equipment/PlanMapper.java
  2. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/AccessMapper.java
  3. 12
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/DefectMapper.java
  4. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/MaintenanceMapper.java
  5. 5
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OtherMapper.java
  6. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OverDetailsMapper.java
  7. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OverMapper.java
  8. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/SolveMapper.java
  9. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/TicketEvaluateMapper.java
  10. 13
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/TicketMapper.java
  11. 14
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/WorkTicketMapper.java
  12. 24
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/ShowScheduledTask.java
  13. 16
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/equipment/PlanService.java
  14. 33
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/equipment/impl/PlanServiceImpl.java
  15. 14
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/AccessService.java
  16. 14
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/DefectService.java
  17. 15
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/MaintenanceService.java
  18. 5
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/MonitorService.java
  19. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OtherService.java
  20. 12
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OverDetailsService.java
  21. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OverService.java
  22. 9
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/ShowService.java
  23. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/SolveService.java
  24. 51
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/AccessServiceImpl.java
  25. 55
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/DefectServiceImpl.java
  26. 50
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/MaintenanceServiceImpl.java
  27. 19
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OtherServiceImpl.java
  28. 19
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OverDetailsServiceImpl.java
  29. 19
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OverServiceImpl.java
  30. 1
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/RealTargetServiceImpl.java
  31. 480
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/ShowServiceImpl.java
  32. 20
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/SolveServiceImpl.java
  33. 11
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/TicketEvaluateService.java
  34. 16
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/TicketService.java
  35. 7
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/WorkTicketService.java
  36. 20
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/TicketEvaluateServiceImpl.java
  37. 85
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/TicketServiceImpl.java
  38. 1093
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/WorkTicketServiceImpl.java
  39. 38
      hzims-service/hzims-scheduled/src/main/resources/mapper/equipment/PlanMapper.xml
  40. 5
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/AccessMapper.xml
  41. 4
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/DefectMapper.xml
  42. 27
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/MaintenanceMapper.xml
  43. 2
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OtherMapper.xml
  44. 26
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OverDetailsMapper.xml
  45. 26
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OverMapper.xml
  46. 24
      hzims-service/hzims-scheduled/src/main/resources/mapper/operation/SolveMapper.xml
  47. 5
      hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/TicketEvaluateMapper.xml
  48. 5
      hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/TicketMapper.xml
  49. 4
      hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/WorkTicketMapper.xml
  50. 90
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/IOperDefectService.java

17
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/equipment/PlanMapper.java

@ -0,0 +1,17 @@
package com.hnac.hzims.scheduled.mapper.equipment;
import com.hnac.hzims.equipment.entity.PlanGenerationEntity;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
import java.util.List;
/**
* @author ysj
*/
public interface PlanMapper extends UserDataScopeBaseMapper<PlanGenerationEntity> {
// 查询计划发电量
List<PlanGenerationEntity> planGeneration(@Param("stationIds") List<String> stationIds, @Param("deptIds") List<String> deptIds, @Param("date") String date);
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/AccessMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.access.entity.OperAccessTaskEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface AccessMapper extends UserDataScopeBaseMapper<OperAccessTaskEntity> {
}

12
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/DefectMapper.java

@ -0,0 +1,12 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.defect.entity.OperDefectEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface DefectMapper extends UserDataScopeBaseMapper<OperDefectEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/MaintenanceMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface MaintenanceMapper extends UserDataScopeBaseMapper<OperMaintenanceTaskEntity> {
}

5
hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/mapper/OtherMapper.java → hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OtherMapper.java

@ -1,8 +1,11 @@
package com.hnac.hzims.operational.fill.mapper;
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.fill.entity.OtherEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface OtherMapper extends UserDataScopeBaseMapper<OtherEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OverDetailsMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.fill.entity.OverDetailsEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface OverDetailsMapper extends UserDataScopeBaseMapper<OverDetailsEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/OverMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.fill.entity.OverEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface OverMapper extends UserDataScopeBaseMapper<OverEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/operation/SolveMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.operation;
import com.hnac.hzims.operational.fill.entity.SolveEntity;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
public interface SolveMapper extends UserDataScopeBaseMapper<SolveEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/TicketEvaluateMapper.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.mapper.ticket;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.ticket.allTicket.entity.TicketInfoEvaluateEntity;
/**
* @author ysj
*/
public interface TicketEvaluateMapper extends BaseMapper<TicketInfoEvaluateEntity> {
}

13
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/TicketMapper.java

@ -0,0 +1,13 @@
package com.hnac.hzims.scheduled.mapper.ticket;
import com.hnac.hzims.ticket.standardTicket.entity.StandardTicketInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
@Mapper
public interface TicketMapper extends UserDataScopeBaseMapper<StandardTicketInfoEntity> {
}

14
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/ticket/WorkTicketMapper.java

@ -0,0 +1,14 @@
package com.hnac.hzims.scheduled.mapper.ticket;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper;
/**
* @author ysj
*/
@Mapper
public interface WorkTicketMapper extends UserDataScopeBaseMapper<WorkTicketInfoEntity> {
}

24
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/ShowScheduledTask.java

@ -1,8 +1,18 @@
package com.hnac.hzims.scheduled.scheduled;
import com.hnac.hzims.scheduled.service.operation.ShowService;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import static com.hnac.hzims.operational.main.constant.MainConstants.LOAD_HOME_TARGET;
/**
* @author ysj
@ -11,4 +21,18 @@ import org.springframework.stereotype.Component;
@Component
public class ShowScheduledTask {
@Autowired
private ShowService service;
/**
* 首页-指标数据加载
*/
@XxlJob(LOAD_HOME_TARGET)
public ReturnT<String> loadHomeTarget(String param) {
if (Func.isBlank(param)) {
param = DateUtil.format(new Date(), "yyyy-MM");
}
service.loadHomeTarget(param);
return new ReturnT<>("SUCCESS");
}
}

16
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/equipment/PlanService.java

@ -0,0 +1,16 @@
package com.hnac.hzims.scheduled.service.equipment;
import com.hnac.hzims.equipment.entity.PlanGenerationEntity;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* @author ysj
*/
public interface PlanService extends BaseService<PlanGenerationEntity> {
// 查询计划发电量
List<PlanGenerationEntity> planGeneration(List<String> stationIds, List<String> deptIds, String date);
}

33
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/equipment/impl/PlanServiceImpl.java

@ -0,0 +1,33 @@
package com.hnac.hzims.scheduled.service.equipment.impl;
import com.hnac.hzims.equipment.entity.PlanGenerationEntity;
import com.hnac.hzims.scheduled.mapper.equipment.PlanMapper;
import com.hnac.hzims.scheduled.service.equipment.PlanService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author ysj
*/
@Service
@Slf4j
@AllArgsConstructor
public class PlanServiceImpl extends BaseServiceImpl<PlanMapper, PlanGenerationEntity> implements PlanService {
/**
* 查询计划发电量
* @param stationIds
* @param deptIds
* @param date
* @return
*/
@Override
public List<PlanGenerationEntity> planGeneration(List<String> stationIds, List<String> deptIds, String date) {
return this.baseMapper.planGeneration(stationIds,deptIds,date);
}
}

14
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/AccessService.java

@ -0,0 +1,14 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.access.entity.OperAccessTaskEntity;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* @author ysj
*/
public interface AccessService extends BaseService<OperAccessTaskEntity> {
double accessCount(List<Long> areas);
}

14
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/DefectService.java

@ -0,0 +1,14 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.defect.entity.OperDefectEntity;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* @author Lch
*/
public interface DefectService extends BaseService<OperDefectEntity> {
Double defectCount(List<Long> areas);
}

15
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/MaintenanceService.java

@ -0,0 +1,15 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* @author ysj
*/
public interface MaintenanceService extends BaseService<OperMaintenanceTaskEntity> {
// 查询当年日常维护数量
Integer maintenanceCount(List<Long> departList);
}

5
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/MonitorService.java

@ -9,8 +9,9 @@ public interface MonitorService {
// realId刷新
void loadRealId(String param);
// 实时数据刷新
void loadRealData(String param);
// 集中监控数据处理
void loadMonitoring(String param);
void loadRealData(String param);
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OtherService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.fill.entity.OtherEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author ysj
*/
public interface OtherService extends BaseService<OtherEntity> {
}

12
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OverDetailsService.java

@ -0,0 +1,12 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.fill.entity.OverDetailsEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author ysj
*/
public interface OverDetailsService extends BaseService<OverDetailsEntity> {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/OverService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.fill.entity.OverEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author ysj
*/
public interface OverService extends BaseService<OverEntity> {
}

9
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/ShowService.java

@ -0,0 +1,9 @@
package com.hnac.hzims.scheduled.service.operation;
/**
* @author ysj
*/
public interface ShowService {
void loadHomeTarget(String param);
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/SolveService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.service.operation;
import com.hnac.hzims.operational.fill.entity.SolveEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author ysj
*/
public interface SolveService extends BaseService<SolveEntity> {
}

51
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/AccessServiceImpl.java

@ -0,0 +1,51 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.operational.access.entity.OperAccessTaskEntity;
import com.hnac.hzims.scheduled.mapper.operation.AccessMapper;
import com.hnac.hzims.scheduled.service.operation.AccessService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
/**
* @author ysj
*/
@Service
@Slf4j
@AllArgsConstructor
public class AccessServiceImpl extends BaseServiceImpl<AccessMapper, OperAccessTaskEntity> implements AccessService {
/**
* 查询当年检修任务数量
* @param areas
* @return
*/
@Override
public double accessCount(List<Long> areas) {
if(CollectionUtil.isEmpty(areas)) {
return 0;
}
LocalDate firstDay = LocalDate.now().withDayOfYear(1);
LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN);
LocalDateTime now = LocalDateTime.now();
//日常维护
List<OperAccessTaskEntity> accesss = this.list(new LambdaQueryWrapper<OperAccessTaskEntity>(){{
ge(OperAccessTaskEntity::getPlanStartTime,firstDateTime);
le(OperAccessTaskEntity::getPlanStartTime,now);
in(OperAccessTaskEntity::getCreateDept,areas);
}});
if(CollectionUtil.isEmpty(accesss)){
return 0;
}
return accesss.size();
}
}

55
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/DefectServiceImpl.java

@ -0,0 +1,55 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.operational.defect.entity.OperDefectEntity;
import com.hnac.hzims.scheduled.mapper.operation.DefectMapper;
import com.hnac.hzims.scheduled.service.operation.DefectService;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author ysj
*/
@Service
@AllArgsConstructor
public class DefectServiceImpl extends BaseServiceImpl<DefectMapper, OperDefectEntity> implements DefectService {
/**
* 获取消缺率
* @param areas
* @return
*/
@Override
public Double defectCount(List<Long> areas) {
if(CollectionUtil.isEmpty(areas)) {
return 100.00;
}
LocalDate firstDay = LocalDate.now().withDayOfYear(1);
LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN);
LocalDateTime now = LocalDateTime.now();
List<OperDefectEntity> pTaskList = this.list(new LambdaQueryWrapper<OperDefectEntity>(){{
ge(OperDefectEntity::getCreateTime,firstDateTime);
le(OperDefectEntity::getCreateTime,now);
in(OperDefectEntity::getCreateDept,areas);
}});
if(CollectionUtil.isEmpty(pTaskList)){
return 0.0;
}
// 缺陷处理完成数
List<OperDefectEntity> finishTask = pTaskList.stream().filter(defect -> "1".equals(defect.getHandleStatus())).collect(Collectors.toList());
if(CollectionUtil.isEmpty(finishTask)){
return 0.0;
}
// 消缺率 = (缺陷数 / 总数) * 100
return BigDecimal.valueOf(finishTask.size() / (double) pTaskList.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
}

50
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/MaintenanceServiceImpl.java

@ -0,0 +1,50 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity;
import com.hnac.hzims.scheduled.mapper.operation.MaintenanceMapper;
import com.hnac.hzims.scheduled.service.operation.MaintenanceService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;
/**
* @author ysj
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class MaintenanceServiceImpl extends BaseServiceImpl<MaintenanceMapper, OperMaintenanceTaskEntity> implements MaintenanceService {
/**
* 获取日常维护数量
* @param departList
* @return
*/
@Override
public Integer maintenanceCount(List<Long> departList) {
if(CollectionUtil.isEmpty(departList)){
return 0;
}
LocalDate firstDay = LocalDate.now().withDayOfYear(1);
LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN);
LocalDateTime now = LocalDateTime.now();
//日常维护
List<OperMaintenanceTaskEntity> mTaskList = this.list(new LambdaQueryWrapper<OperMaintenanceTaskEntity>(){{
ge(OperMaintenanceTaskEntity::getDisposeTime,firstDateTime);
le(OperMaintenanceTaskEntity::getDisposeTime,now);
in(OperMaintenanceTaskEntity::getCreateDept,departList);
}});
if(CollectionUtil.isEmpty(mTaskList)){
return 0;
}
return mTaskList.size();
}
}

19
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OtherServiceImpl.java

@ -0,0 +1,19 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.hnac.hzims.operational.fill.entity.OtherEntity;
import com.hnac.hzims.scheduled.mapper.operation.OtherMapper;
import com.hnac.hzims.scheduled.service.operation.OtherService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author ysj
*/
@Slf4j
@Service
@AllArgsConstructor
public class OtherServiceImpl extends BaseServiceImpl<OtherMapper, OtherEntity> implements OtherService {
}

19
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OverDetailsServiceImpl.java

@ -0,0 +1,19 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.hnac.hzims.operational.fill.entity.OverDetailsEntity;
import com.hnac.hzims.scheduled.mapper.operation.OverDetailsMapper;
import com.hnac.hzims.scheduled.service.operation.OverDetailsService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author ysj
*/
@Slf4j
@Service
@AllArgsConstructor
public class OverDetailsServiceImpl extends BaseServiceImpl<OverDetailsMapper, OverDetailsEntity> implements OverDetailsService {
}

19
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/OverServiceImpl.java

@ -0,0 +1,19 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.hnac.hzims.operational.fill.entity.OverEntity;
import com.hnac.hzims.scheduled.mapper.operation.OverMapper;
import com.hnac.hzims.scheduled.service.operation.OverService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author ysj
*/
@Slf4j
@Service
@AllArgsConstructor
public class OverServiceImpl extends BaseServiceImpl<OverMapper, OverEntity> implements OverService {
}

1
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/RealTargetServiceImpl.java

@ -87,7 +87,6 @@ public class RealTargetServiceImpl implements RealTargetService {
private final static String load_photovoltaic_target_key = "hzims:operation:photovoltaic:target:key";
/**
* 加载水电站机组实时数据
* @param param

480
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/ShowServiceImpl.java

@ -0,0 +1,480 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.hnac.hzims.equipment.entity.PlanGenerationEntity;
import com.hnac.hzims.operational.fill.entity.*;
import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.main.vo.*;
import com.hnac.hzims.operational.station.entity.StationEntity;
import com.hnac.hzims.scheduled.service.equipment.PlanService;
import com.hnac.hzims.scheduled.service.operation.*;
import com.hnac.hzims.scheduled.service.ticket.TicketService;
import com.hnac.hzims.ticket.allTicket.vo.DoublePassRateVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.system.cache.DictCache;
import org.springblade.system.entity.Dept;
import org.springblade.system.feign.ISysClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* @author ysj
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class ShowServiceImpl implements ShowService {
private final OverService overService;
private final PlanService planService;
private final PowerService powerService;
private final SolveService solveService;
private final OtherService otherService;
private final AccessService accessService;
private final TicketService ticketService;
private final DefectService defectService;
private final StationService stationService;
private final OverDetailsService detailsService;
private final MaintenanceService maintenanceService;
private final RedisTemplate redisTemplate;
private final ISysClient sysClient;
private final static String charge = "hzims:operation:key:charge";
private final static String home_target_cache_final = "load:operation:home:target:key";
private final static String hydropower_real_cache_final = "hzims:operation:loadhydropowerunit:real:key";
private final static String hydropower_target_cache_final = "hzims:operation:loadhydropowerunit:target:key";
private final static String photovoltaic_real_cache_final = "hzims:operation:photovoltaic:real:key";
private final static String photovoltaic_target_cache_final = "hzims:operation:photovoltaic:target:key";
@Value("${hzims.operation.homePage.charge.url}")
public String charge_url;
/**
* 集团总指标-首页数据
*/
@Override
public void loadHomeTarget(String param) {
List<TargetVo> targets = HomePageConstant.HOME_TYPES.stream().map(type->{
if(type == 0) {
return this.hydropowerTaget();
}
if (type == 1) {
return this.windTaget();
}
if (type == 2) {
return this.waterStorageTaget(true);
}
if (type == 3) {
return this.waterStorageTaget(false);
}
if (type == 4) {
return this.networkTaget();
}
if (type == 5) {
return this.photovoltaicTaget();
}
if (type == 6) {
return this.affairsTaget();
}
if(type == 7) {
return this.chargeTarget();
}
return new TargetVo();
}).collect(Collectors.toList());
redisTemplate.opsForValue().set(home_target_cache_final,targets.stream().filter(( target -> ObjectUtil.isNotEmpty(target.getType()))).collect(Collectors.toList()));
}
/**
* 水电站指标
* @return
*/
private TargetVo hydropowerTaget() {
TargetVo target = new TargetVo();
target.setType(HomePageConstant.HYDROPOWER);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.HYDROPOWER));
// 实时数据
List<HydropowerUnitRealVo> reals = (List<HydropowerUnitRealVo>) redisTemplate.opsForValue().get(hydropower_real_cache_final);
// 指标数据
List<HydropowerUnitTargetVo> targets = (List<HydropowerUnitTargetVo>) redisTemplate.opsForValue().get(hydropower_target_cache_final);
if(CollectionUtil.isNotEmpty(reals)){
// 装机容量
target.setTaget_one(reals.stream().mapToDouble(HydropowerUnitRealVo::getInstalledCapacity).sum());
}
if(CollectionUtil.isNotEmpty(targets)){
// 发电量
target.setTaget_two(targets.stream().mapToDouble(HydropowerUnitTargetVo::getPowerYear).sum());
}
// 计划发电量
List<StationEntity> stations = stationService.list(Wrappers.<StationEntity>lambdaQuery()
.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE)
.eq(StationEntity::getType,HomePageConstant.HYDROPOWER));
if(CollectionUtil.isNotEmpty(stations)){
List<PlanGenerationEntity> plans = planService.planGeneration(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()), null, DateUtil.format(new Date(), "yyyy"));
if(CollectionUtil.isNotEmpty(plans)){
double plan = plans.stream().mapToDouble(PlanGenerationEntity::getPlanGeneration).sum();
if(Math.abs(plan) > 0){
target.setTaget_three(BigDecimal.valueOf(target.getTaget_two() / plan * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
}
}
// 双票合格率
R<List<Dept>> result = sysClient.getDeptList();
if(result.isSuccess() && CollectionUtil.isNotEmpty(result.getData()) && CollectionUtil.isNotEmpty(stations)){
List<Long> areas = result.getData().stream().filter(dept -> stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(dept.getId())).map(Dept::getParentId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(areas)){
LocalDateTime firstDateTime = LocalDateTime.of(LocalDate.now().withDayOfYear(1), LocalTime.MIN);
DoublePassRateVO pass = ticketService.doublePassRate(areas, firstDateTime, LocalDateTime.now());
if(ObjectUtil.isNotEmpty(pass)){
target.setTaget_four(Double.valueOf(pass.getDoublePassRate()));
}
}
}
return target;
}
/**
* 风电指标
* @return
*/
private TargetVo windTaget() {
TargetVo target = new TargetVo();
target.setType(HomePageConstant.WIND_POWER);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.WIND_POWER));
// 填报发电量
List<StationEntity> stations = stationService.list(Wrappers.<StationEntity>lambdaQuery()
.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE)
.eq(StationEntity::getType,HomePageConstant.WIND_POWER));
if(CollectionUtil.isEmpty(stations)){
return target;
}
QueryWrapper<PowerEntity> queryWrapper = new QueryWrapper<PowerEntity>() {{
in("create_dept", stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()));
eq("type", HomePageConstant.WIND_POWER_TYPE);
likeRight("mon", DateUtil.format(new Date(),"yyyy"));
}};
List<PowerEntity> list = powerService.list(queryWrapper);
if(CollectionUtil.isEmpty(list)){
return target;
}
double plan = list.stream().mapToDouble(PowerEntity::getPlannedPowerMon).sum();
double pass = list.stream().mapToDouble(power -> Double.parseDouble(power.getDoubleQualifyRate())).sum();
// 装机容量
target.setTaget_one(list.stream().map(PowerEntity::getInstalledCapacity).collect(Collectors.toSet()).stream().mapToDouble(Double::valueOf).sum());
// 发电量
target.setTaget_two(list.stream().mapToDouble(PowerEntity::getPowerMon).sum());
if(Math.abs(plan) > 0){
// 发电完成率
target.setTaget_three(BigDecimal.valueOf(target.getTaget_two() / plan * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
// 双票合格率
target.setTaget_four(BigDecimal.valueOf(pass / list.size()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
return target;
}
/**
* 储能指标
* @param flag : true - 水利 false - 储能
* @return
*/
private TargetVo waterStorageTaget(boolean flag) {
TargetVo target = new TargetVo();
if(flag){
target.setType(HomePageConstant.WATER_CONSERVANCY);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.WATER_CONSERVANCY));
}else{
target.setType(HomePageConstant.ENERGY_STORAGE);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.ENERGY_STORAGE));
}
// 查询储能站点
LambdaQueryWrapper<StationEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE);
if(flag){
wrapper.eq(StationEntity::getType,HomePageConstant.WATER_CONSERVANCY);
}else{
wrapper.eq(StationEntity::getType,HomePageConstant.ENERGY_STORAGE);
}
List<StationEntity> stations = stationService.list(wrapper);
if(CollectionUtil.isEmpty(stations)){
return target;
}
// 获取储能区域级别机构
R<List<Dept>> result = sysClient.getDeptList();
if(result.isSuccess() && CollectionUtil.isNotEmpty(result.getData()) && CollectionUtil.isNotEmpty(stations)){
List<Long> areas = result.getData().stream().filter(dept -> stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(dept.getId())).map(Dept::getParentId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(areas)){
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("storage-taget-pool-%d").build();
ScheduledExecutorService exe = new ScheduledThreadPoolExecutor(4, namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
// 监控线程执行完后返回结果
CountDownLatch countDownLatch = new CountDownLatch(4);
// 日常维护
exe.execute(() -> {
target.setTaget_one(Double.valueOf(maintenanceService.maintenanceCount(areas)));
countDownLatch.countDown();
});
// 检修任务
exe.execute(() -> {
target.setTaget_two(accessService.accessCount(areas));
countDownLatch.countDown();
});
// 消缺率
exe.execute(() -> {
target.setTaget_three(defectService.defectCount(areas));
countDownLatch.countDown();
});
// 双票合格率
exe.execute(() -> {
LocalDate firstDay = LocalDate.now().withDayOfYear(1);
LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN);
DoublePassRateVO pass = ticketService.doublePassRate(areas, firstDateTime, LocalDateTime.now());
if (ObjectUtil.isNotEmpty(pass)) {
target.setTaget_four(Double.valueOf(pass.getDoublePassRate()));
}
countDownLatch.countDown();
});
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
Thread.currentThread().interrupt();
}
exe.shutdown();
}
}
return target;
}
/**
* 配网
* @return
*/
private TargetVo networkTaget() {
TargetVo target = new TargetVo();
target.setType(HomePageConstant.DISTRIBUTION_NETWORK);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.DISTRIBUTION_NETWORK));
// 线程池
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("network-taget-pool-%d").build();
ScheduledExecutorService exe = new ScheduledThreadPoolExecutor(3, namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
// 监控线程执行完后返回结果
CountDownLatch countDownLatch = new CountDownLatch(3);
// 当月
LocalDate firstDay = LocalDate.now().withDayOfYear(1);
LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN);
// 检修卡
exe.execute(()->{
List<OverEntity> overs = overService.list(new QueryWrapper<OverEntity>() {{
ge("create_time", firstDateTime);
le("create_time", LocalDateTime.now());
}});
if(CollectionUtil.isEmpty(overs)){
countDownLatch.countDown();
return;
}
List<OverDetailsEntity> details = detailsService.list(new QueryWrapper<OverDetailsEntity>() {{
ge("create_time", firstDateTime);
le("create_time", LocalDateTime.now());
in("over_id",overs.stream().map(OverEntity::getId).collect(Collectors.toList()));
}});
if(CollectionUtil.isEmpty(details)){
countDownLatch.countDown();
return;
}
target.setTaget_one(details.stream().mapToDouble(OverDetailsEntity::getQuantity).sum());
countDownLatch.countDown();
});
// 消缺
exe.execute(()->{
List<SolveEntity> solves = solveService.list(new QueryWrapper<SolveEntity>() {{
ge("create_time", firstDateTime);
le("create_time", LocalDateTime.now());
}});
if(CollectionUtil.isEmpty(solves)){
countDownLatch.countDown();
return;
}
target.setTaget_two(solves.stream().mapToDouble(SolveEntity::getSolveQuantity).sum());
countDownLatch.countDown();
});
// 其他
exe.execute(()->{
List<OtherEntity> others = otherService.list(new QueryWrapper<OtherEntity>() {{
ge("create_time", firstDateTime);
le("create_time", LocalDateTime.now());
}});
if(CollectionUtil.isEmpty(others)){
countDownLatch.countDown();
return;
}
// FA上线率
double online = others.stream().mapToDouble(o-> Double.parseDouble(o.getOnlineRate())).sum();
if(Math.abs(online) > 0){
target.setTaget_three(BigDecimal.valueOf(online / others.size()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
// FA投入条数
target.setTaget_four(others.stream().mapToDouble(OtherEntity::getFaQuantity).sum());
countDownLatch.countDown();
});
// 等待所有线程执行完成
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
Thread.currentThread().interrupt();
}
return target;
}
/**
* 光伏指标
* @return
*/
private TargetVo photovoltaicTaget() {
TargetVo target = new TargetVo();
target.setType(HomePageConstant.PHOTOVOLTAIC);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.PHOTOVOLTAIC));
// 实时数据
List<PhotovoltaicRealVo> reals = (List<PhotovoltaicRealVo>) redisTemplate.opsForValue().get(photovoltaic_real_cache_final);
// 指标数据
List<PhotovoltaicTargetVo> targets = (List<PhotovoltaicTargetVo>) redisTemplate.opsForValue().get(photovoltaic_target_cache_final);
if(CollectionUtil.isNotEmpty(reals)){
// 装机容量
target.setTaget_one(reals.stream().mapToDouble(PhotovoltaicRealVo::getCapacity).sum());
}
if(CollectionUtil.isNotEmpty(targets)){
// 发电量
target.setTaget_two(targets.stream().mapToDouble(PhotovoltaicTargetVo::getGenerationYear).sum());
}
// 计划发电量、双票合格率
List<StationEntity> stations = stationService.list(Wrappers.<StationEntity>lambdaQuery()
.eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE)
.eq(StationEntity::getType,HomePageConstant.PHOTOVOLTAIC));
if(CollectionUtil.isNotEmpty(stations)){
QueryWrapper<PowerEntity> queryWrapper = new QueryWrapper<PowerEntity>() {{
in("create_dept", stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()));
eq("type", HomePageConstant.PHOTOVOLTAIC_TYPE);
likeRight("mon", DateUtil.format(new Date(),"yyyy"));
}};
List<PowerEntity> list = powerService.list(queryWrapper);
if(CollectionUtil.isEmpty(list)){
return target;
}
double plan = list.stream().mapToDouble(PowerEntity::getPlannedPowerMon).sum();
double pass = list.stream().mapToDouble(power -> Double.parseDouble(power.getDoubleQualifyRate())).sum();
if(Math.abs(plan) > 0){
// 发电完成率
target.setTaget_three(BigDecimal.valueOf(target.getTaget_two() / plan * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
// 双票合格率
target.setTaget_four(BigDecimal.valueOf(pass / list.size()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
}
return target;
}
/**
* 水务指标
* @return
*/
private TargetVo affairsTaget() {
TargetVo target = new TargetVo();
target.setType(HomePageConstant.WATER_AFFAIRS);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.WATER_AFFAIRS));
// TODO 统计业务数据
return target;
}
/**
* 充电桩
* @return
*/
private TargetVo chargeTarget() {
TargetVo target = (TargetVo) redisTemplate.opsForValue().get(charge);
if(ObjectUtil.isNotEmpty(target)){
return target;
}
target = new TargetVo();
try {
URL serverUrl = new URL(charge_url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
//必须设置false,否则会自动redirect到重定向后的地址
conn.setInstanceFollowRedirects(false);
conn.connect();
String result = responseFormat(conn);
if (StringUtil.isBlank(result)) {
return new TargetVo();
}
JSONObject jsonObject = JSONObject.parseObject(result);
JSONObject data = JSONObject.parseObject(jsonObject.get("data").toString());
target.setType(HomePageConstant.CHARGE);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.CHARGE));
target.setTaget_one(Double.valueOf(data.get("ordersCount").toString()));
target.setTaget_two(Double.valueOf(data.get("todayDegree").toString()));
target.setTaget_three(Double.valueOf(data.get("income").toString()));
target.setTaget_four(Double.valueOf(data.get("kilowatt").toString()));
target.setCharge(Integer.valueOf(data.get("stationNum").toString()));
redisTemplate.opsForValue().set(charge,target);
redisTemplate.expire(charge,30, TimeUnit.MINUTES);
} catch (Exception e) {
target.setType(HomePageConstant.CHARGE);
target.setTypeName(DictCache.getValue("stationType", HomePageConstant.CHARGE));
target.setTaget_one(0.0);
target.setTaget_two(0.0);
target.setTaget_three(0.0);
target.setTaget_four(0.0);
target.setCharge(0);
log.error("charge_target_exception: {} ", e.getMessage());
}
return target;
}
/***
* 获取返回的内容
* @param connection
* @return
*/
private String responseFormat(HttpURLConnection connection) {
StringBuilder stringBuilder = new StringBuilder();
//将返回的输入流转换成字符串
try (
InputStream inputStream = connection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader)
) {
String str;
while ((str = bufferedReader.readLine()) != null) {
stringBuilder.append(str);
}
} catch (IOException e) {
return null;
}
return stringBuilder.toString();
}
}

20
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/impl/SolveServiceImpl.java

@ -0,0 +1,20 @@
package com.hnac.hzims.scheduled.service.operation.impl;
import com.hnac.hzims.operational.fill.entity.SolveEntity;
import com.hnac.hzims.scheduled.mapper.operation.SolveMapper;
import com.hnac.hzims.scheduled.service.operation.SolveService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author ysj
*/
@Slf4j
@Service
@AllArgsConstructor
public class SolveServiceImpl extends BaseServiceImpl<SolveMapper, SolveEntity> implements SolveService {
}

11
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/TicketEvaluateService.java

@ -0,0 +1,11 @@
package com.hnac.hzims.scheduled.service.ticket;
import com.hnac.hzims.ticket.allTicket.entity.TicketInfoEvaluateEntity;
import org.springblade.core.mp.base.BaseService;
/**
* @author hx
*/
public interface TicketEvaluateService extends BaseService<TicketInfoEvaluateEntity> {
}

16
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/TicketService.java

@ -0,0 +1,16 @@
package com.hnac.hzims.scheduled.service.ticket;
import com.hnac.hzims.ticket.allTicket.vo.DoublePassRateVO;
import com.hnac.hzims.ticket.standardTicket.entity.StandardTicketInfoEntity;
import org.springblade.core.mp.base.BaseService;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author ysj
*/
public interface TicketService extends BaseService<StandardTicketInfoEntity> {
DoublePassRateVO doublePassRate(List<Long> areas, LocalDateTime firstDateTime, LocalDateTime now);
}

7
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/WorkTicketService.java

@ -0,0 +1,7 @@
package com.hnac.hzims.scheduled.service.ticket;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import org.springblade.core.mp.base.BaseService;
public interface WorkTicketService extends BaseService<WorkTicketInfoEntity> {
}

20
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/TicketEvaluateServiceImpl.java

@ -0,0 +1,20 @@
package com.hnac.hzims.scheduled.service.ticket.impl;
import com.hnac.hzims.scheduled.mapper.ticket.TicketEvaluateMapper;
import com.hnac.hzims.scheduled.service.ticket.TicketEvaluateService;
import com.hnac.hzims.ticket.allTicket.entity.TicketInfoEvaluateEntity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.stereotype.Service;
/**
* @author ysj
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class TicketEvaluateServiceImpl extends BaseServiceImpl<TicketEvaluateMapper, TicketInfoEvaluateEntity> implements TicketEvaluateService {
}

85
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/TicketServiceImpl.java

@ -0,0 +1,85 @@
package com.hnac.hzims.scheduled.service.ticket.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.hnac.hzims.scheduled.mapper.ticket.TicketMapper;
import com.hnac.hzims.scheduled.service.ticket.TicketEvaluateService;
import com.hnac.hzims.scheduled.service.ticket.TicketService;
import com.hnac.hzims.scheduled.service.ticket.WorkTicketService;
import com.hnac.hzims.ticket.allTicket.entity.TicketInfoEvaluateEntity;
import com.hnac.hzims.ticket.allTicket.vo.DoublePassRateVO;
import com.hnac.hzims.ticket.constants.TicketConstants;
import com.hnac.hzims.ticket.standardTicket.entity.StandardTicketInfoEntity;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author ysj
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class TicketServiceImpl extends BaseServiceImpl<TicketMapper, StandardTicketInfoEntity> implements TicketService {
private final WorkTicketService workTicketService;
private final TicketEvaluateService ticketEvaluateService;
/**
* 获取双票合格率
* @param depatList
* @param firstDateTime
* @param now
* @return
*/
@Override
public DoublePassRateVO doublePassRate(List<Long> depatList, LocalDateTime firstDateTime, LocalDateTime now) {
DoublePassRateVO doublePassRateVO = new DoublePassRateVO();
// 查询操作票
List<StandardTicketInfoEntity> standardList = this.list(new LambdaQueryWrapper<StandardTicketInfoEntity>() {{
ge(StandardTicketInfoEntity::getCreateTime, firstDateTime);
le(StandardTicketInfoEntity::getCreateTime, now);
in(StandardTicketInfoEntity::getCreateDept, depatList);
}});
// 查询工作票
List<WorkTicketInfoEntity> workList = workTicketService.list(new LambdaQueryWrapper<WorkTicketInfoEntity>() {{
ge(WorkTicketInfoEntity::getCreateTime, firstDateTime);
le(WorkTicketInfoEntity::getCreateTime, now);
in(WorkTicketInfoEntity::getCreateDept, depatList);
}});
if (CollectionUtil.isEmpty(standardList) && CollectionUtil.isEmpty(workList)) {
doublePassRateVO.setDoubleTicketCount(0);
doublePassRateVO.setDoubleTicketPassCount(0);
doublePassRateVO.setDoublePassRate("0");
return doublePassRateVO;
}
List<Long> standardIdList = new ArrayList<>();
standardIdList.addAll(standardList.stream().map(StandardTicketInfoEntity::getId).collect(Collectors.toList()));
standardIdList.addAll(workList.stream().map(WorkTicketInfoEntity::getId).collect(Collectors.toList()));
doublePassRateVO.setDoubleTicketCount(standardIdList.size());
// 查询合格评价
List<TicketInfoEvaluateEntity> evaluateList = ticketEvaluateService.list(new LambdaQueryWrapper<TicketInfoEvaluateEntity>() {{
ge(TicketInfoEvaluateEntity::getCreateTime, firstDateTime);
le(TicketInfoEvaluateEntity::getCreateTime, now);
in(TicketInfoEvaluateEntity::getTicketId, standardIdList);
eq(TicketInfoEvaluateEntity::getStatus, TicketConstants.TicketQualifiedEnum.Qualified.getCode());
}});
if (CollectionUtil.isEmpty(evaluateList)) {
doublePassRateVO.setDoubleTicketPassCount(0);
doublePassRateVO.setDoublePassRate("0");
return doublePassRateVO;
}
double doublePassRate = BigDecimal.valueOf(evaluateList.size() / (double) standardIdList.size() * 100).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
doublePassRateVO.setDoubleTicketPassCount(evaluateList.size());
doublePassRateVO.setDoublePassRate(String.valueOf(doublePassRate));
return doublePassRateVO;
}
}

1093
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/ticket/impl/WorkTicketServiceImpl.java

File diff suppressed because it is too large Load Diff

38
hzims-service/hzims-scheduled/src/main/resources/mapper/equipment/PlanMapper.xml

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hnac.hzims.scheduled.mapper.equipment.PlanMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.equipment.entity.PlanGenerationEntity">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="TENANT_ID" property="tenantId" jdbcType="VARCHAR"/>
<result column="STATION_ID" property="stationId" jdbcType="VARCHAR"/>
<result column="DATE_TIME" property="dateTime" jdbcType="VARCHAR"/>
<result column="PLAN_GENERATION" property="planGeneration" jdbcType="REAL"/>
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP"/>
<result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="CREATE_USER" property="createUser" jdbcType="BIGINT"/>
<result column="UPDATE_USER" property="updateUser" jdbcType="BIGINT"/>
<result column="IS_DELETED" property="isDeleted" jdbcType="TINYINT"/>
<result column="STATUS" property="status" jdbcType="TINYINT"/>
<result column="CREATE_DEPT" property="createDept" jdbcType="BIGINT"/>
</resultMap>
<select id="selectPlanGenerationByParam" resultType="com.hnac.hzims.equipment.entity.PlanGenerationEntity">
select * from hz_ims_plan_generation
where IS_DELETED = 0
<if test="stationIds != null">
and STATION_ID in
<foreach collection="stationIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="deptIds != null">
and STATION_DEPT_ID in
<foreach collection="deptIds" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="date != null">
and DATE_TIME LIKE CONCAT(#{date},'%')
</if>
</select>
</mapper>

5
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/AccessMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.AccessMapper">
</mapper>

4
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/DefectMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.DefectMapper">
</mapper>

27
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/MaintenanceMapper.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.MaintenanceMapper">
<resultMap id="oper_maintenance_taskResultMap" type="com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity">
<result column="ID" property="id"/>
<result column="REF_LIBRARY_ID" property="refLibraryId"/>
<result column="TITLE" property="title"/>
<result column="PROCESS_INSTANCE_ID_" property="processInstanceId"/>
<result column="DISPOSER" property="disposer"/>
<result column="DISPOSE_TIME" property="disposeTime"/>
<result column="HOURS" property="hours"/>
<result column="ACT_HOURS" property="actHours"/>
<result column="CONTENT" property="content"/>
<result column="WORK_STANDARDS" property="workStandards"/>
<result column="SAFO" property="safo"/>
<result column="IS_ANOMALY" property="isAnomaly"/>
<result column="LEGACY" property="legacy"/>
<result column="DESCRIPTION" property="description"/>
<result column="STATUS" property="status"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
</resultMap>
</mapper>

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/fill/mapper/OtherMapper.xml → hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OtherMapper.xml

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hnac.hzims.operational.fill.mapper.OtherMapper">
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.OtherMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.OtherEntity">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="START_DATE" property="startDate" jdbcType="DATE"/>

26
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OverDetailsMapper.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.OverDetailsMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.OverDetailsEntity">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="OVER_ID" property="overId" jdbcType="BIGINT"/>
<result column="OVER_CONFIG_ID" property="overConfigId" jdbcType="BIGINT"/>
<result column="PRICE" property="price" jdbcType="DECIMAL"/>
<result column="QUANTITY" property="quantity" jdbcType="INTEGER"/>
<result column="TOTAL_PRICE" property="totalPrice" jdbcType="DECIMAL"/>
<result column="TENANT_ID" property="tenantId" jdbcType="VARCHAR"/>
<result column="STATUS" property="status" jdbcType="TINYINT"/>
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP"/>
<result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="CREATE_USER" property="createUser" jdbcType="BIGINT"/>
<result column="UPDATE_USER" property="updateUser" jdbcType="BIGINT"/>
<result column="IS_DELETED" property="isDeleted" jdbcType="TINYINT"/>
<result column="CREATE_DEPT" property="createDept" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
ID, OVER_ID , OVER_CONFIG_ID , PRICE , QUANTITY , TOTAL_PRICE, TENANT_ID, STATUS, CREATE_TIME, UPDATE_TIME,
CREATE_USER, UPDATE_USER, IS_DELETED, CREATE_DEPT
</sql>
</mapper>

26
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/OverMapper.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.OverMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.OverEntity">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="START_DATE" property="startDate" jdbcType="DATE"/>
<result column="END_DATE" property="endDate" jdbcType="DATE"/>
<result column="TOTAL_PRICE" property="totalPrice" jdbcType="DECIMAL"/>
<result column="ENCL_PATH" property="enclPath" jdbcType="VARCHAR"/>
<result column="ENCL_NAME" property="enclName" jdbcType="VARCHAR"/>
<result column="TENANT_ID" property="tenantId" jdbcType="VARCHAR"/>
<result column="STATUS" property="status" jdbcType="TINYINT"/>
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP"/>
<result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="CREATE_USER" property="createUser" jdbcType="BIGINT"/>
<result column="UPDATE_USER" property="updateUser" jdbcType="BIGINT"/>
<result column="IS_DELETED" property="isDeleted" jdbcType="TINYINT"/>
<result column="CREATE_DEPT" property="createDept" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
ID, START_DATE , END_DATE , TOTAL_PRICE , ENCL_PATH , ENCL_NAME ,TENANT_ID, STATUS,
CREATE_TIME, UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_DELETED, CREATE_DEPT
</sql>
</mapper>

24
hzims-service/hzims-scheduled/src/main/resources/mapper/operation/SolveMapper.xml

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hnac.hzims.scheduled.mapper.operation.SolveMapper">
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.SolveEntity">
<id column="ID" property="id" jdbcType="BIGINT"/>
<result column="SOLVE_DATE" property="solveDate" jdbcType="DATE"/>
<result column="SOLVE_QUANTITY" property="solveQuantity" jdbcType="INTEGER"/>
<result column="SOLVE_SUC_QUANTITY" property="solveSucQuantity" jdbcType="INTEGER"/>
<result column="TENANT_ID" property="tenantId" jdbcType="VARCHAR"/>
<result column="STATUS" property="status" jdbcType="TINYINT"/>
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP"/>
<result column="UPDATE_TIME" property="updateTime" jdbcType="TIMESTAMP"/>
<result column="CREATE_USER" property="createUser" jdbcType="BIGINT"/>
<result column="UPDATE_USER" property="updateUser" jdbcType="BIGINT"/>
<result column="IS_DELETED" property="isDeleted" jdbcType="TINYINT"/>
<result column="CREATE_DEPT" property="createDept" jdbcType="BIGINT"/>
</resultMap>
<sql id="Base_Column_List">
ID, SOLVE_DATE , SOLVE_QUANTITY , SOLVE_SUC_QUANTITY ,TENANT_ID, STATUS, CREATE_TIME,
UPDATE_TIME, CREATE_USER, UPDATE_USER, IS_DELETED, CREATE_DEPT
</sql>
</mapper>

5
hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/TicketEvaluateMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.ticket.TicketEvaluateMapper">
</mapper>

5
hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/TicketMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.ticket.TicketMapper">
</mapper>

4
hzims-service/hzims-scheduled/src/main/resources/mapper/ticket/WorkTicketMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.scheduled.mapper.ticket.WorkTicketMapper">
</mapper>

90
hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/IOperDefectService.java

@ -1,101 +1,13 @@
package com.hnac.hzims.operational.defect.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hnac.hzims.operational.defect.entity.OperDefectEntity;
import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity;
import com.hnac.hzims.operational.defect.vo.OperDefectVO;
import com.hnac.hzims.operational.report.vo.DefectReportsVO;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.flow.core.entity.BladeFlow;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
/**
* 服务类
*
* @author Chill
* @author ysj
*/
public interface IOperDefectService extends BaseService<OperDefectEntity> {
/**
* 开始问题处理流程
* 问题处理流程的第一个处理节点人key 必须是 problemUser
* @param
*/
void startFlow(OperPhenomenonEntity entity, OperDefectEntity defectEntity);
/**
* 处理问题
* @param flow
* @return
*/
boolean handleProcess(BladeFlow flow);
/**
* 获取缺陷的统计月报
* @param month 格式"2021-01"
*/
Map<String, Object> getDefectStatistics(String month);
/**
* 导出缺陷统计月报报表
* @param response
* @param month 格式 "2021-01"
* @throws IOException
*/
void exportFualtMonthExcel(HttpServletResponse response, String month) throws IOException;
List<OperDefectEntity> getDefectList(String emCode,List<String> list);
List<OperDefectEntity> getDefectByEmCodeList(String emCode);
/**
* 站点月报统计 - 消缺
* @param startDate
* @param endDate
* @param deptIdList
* @return
*/
List<DefectReportsVO> getFaultByFaultCode(LocalDate startDate,LocalDate endDate,List<Long> deptIdList);
List<DefectReportsVO> getFaultByFaultCode(Map<String,Object> params);
List<Map<String,Object>> getDefectConclusion(Map<String,Object> params);
/**
* 缺陷详情
* @param defect
* @return
*/
R<OperDefectVO> detail(OperDefectEntity defect);
/**
* 获取安全检查消缺项统计
* @param startDate 开始时间
* @param endDate 结束时间
* @param dept 机构ID
* @param defectType 缺陷类型;1 重大缺陷 2一般缺陷
* @return SafeCheckStatisticVO 对象
*/
SafeCheckStatisticVO getDefectCheck(String startDate,String endDate,Long dept,String defectType);
boolean updateDefectInfo(OperDefectEntity entity);
boolean updateDefectHanderState(OperDefectEntity entity);
/**
* 分页查询
* @param operDefectEntityPage
* @param defect
* @return
*/
IPage<OperDefectEntity> selectPage(Page<OperDefectEntity> operDefectEntityPage, OperDefectEntity defect);
}

Loading…
Cancel
Save