yang_shj
1 year ago
52 changed files with 2441 additions and 125 deletions
@ -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); |
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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 com.hnac.hzims.operational.fill.entity.OtherEntity; |
||||||
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author ysj |
||||||
|
*/ |
||||||
public interface OtherMapper extends UserDataScopeBaseMapper<OtherEntity> { |
public interface OtherMapper extends UserDataScopeBaseMapper<OtherEntity> { |
||||||
|
|
||||||
} |
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -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); |
||||||
|
} |
@ -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); |
||||||
|
} |
||||||
|
} |
@ -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); |
||||||
|
} |
@ -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); |
||||||
|
} |
@ -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); |
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,9 @@ |
|||||||
|
package com.hnac.hzims.scheduled.service.operation; |
||||||
|
|
||||||
|
/** |
||||||
|
* @author ysj |
||||||
|
*/ |
||||||
|
public interface ShowService { |
||||||
|
|
||||||
|
void loadHomeTarget(String param); |
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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(); |
||||||
|
} |
||||||
|
} |
@ -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(); |
||||||
|
} |
||||||
|
} |
@ -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(); |
||||||
|
} |
||||||
|
} |
@ -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 { |
||||||
|
|
||||||
|
} |
@ -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 { |
||||||
|
|
||||||
|
} |
@ -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 { |
||||||
|
|
||||||
|
} |
@ -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(); |
||||||
|
} |
||||||
|
} |
@ -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 { |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -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> { |
||||||
|
|
||||||
|
} |
@ -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); |
||||||
|
} |
@ -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> { |
||||||
|
} |
@ -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 { |
||||||
|
|
||||||
|
|
||||||
|
} |
@ -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; |
||||||
|
} |
||||||
|
} |
File diff suppressed because it is too large
Load Diff
@ -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> |
@ -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> |
@ -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> |
@ -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> |
@ -1,6 +1,6 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8" ?> |
<?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" > |
<!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"> |
<resultMap id="BaseResultMap" type="com.hnac.hzims.operational.fill.entity.OtherEntity"> |
||||||
<id column="ID" property="id" jdbcType="BIGINT"/> |
<id column="ID" property="id" jdbcType="BIGINT"/> |
||||||
<result column="START_DATE" property="startDate" jdbcType="DATE"/> |
<result column="START_DATE" property="startDate" jdbcType="DATE"/> |
@ -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> |
@ -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> |
@ -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> |
@ -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> |
@ -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> |
@ -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> |
@ -1,101 +1,13 @@ |
|||||||
package com.hnac.hzims.operational.defect.service; |
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.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.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 ysj |
||||||
* |
|
||||||
* @author Chill |
|
||||||
*/ |
*/ |
||||||
public interface IOperDefectService extends BaseService<OperDefectEntity> { |
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…
Reference in new issue