Browse Source

Merge remote-tracking branch 'origin/prod-5.1.3' into prod-5.1.3

zhongwei
ty 4 months ago
parent
commit
03f1d5ab70
  1. 2
      hzims-service-api/common-api/src/main/java/com/hnac/hzims/vo/SafeCheckStatisticVO.java
  2. 2
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/ScheduledConstant.java
  3. 19
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerStationVo.java
  4. 19
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerUnitTargetVo.java
  5. 26
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/pv/PowerRainVo.java
  6. 2
      hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/task/feign/IInspectTaskClient.java
  7. 6
      hzims-service/hzims-middle/src/main/java/com/hnac/hzims/middle/MiddleApplication.java
  8. 17
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/GenerationScheduledTask.java
  9. 8
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java
  10. 4
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/ObtainGenerationService.java
  11. 65
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/ObtainGenerationServiceImpl.java
  12. 214
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/RealTargetServiceImpl.java
  13. 1
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/feign/InspectTaskClient.java
  14. 6
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java
  15. 144
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java
  16. 5
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml
  17. 2
      hzims-service/ticket/pom.xml
  18. 6
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/TicketApplication.java
  19. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/OperRepairMapper.xml
  20. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.xml
  21. 18
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketInfoMapper.java
  22. 40
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketInfoMapper.xml
  23. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketMeasureMapper.xml
  24. 11
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/IStandardTicketInfoService.java
  25. 13
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/impl/StandardTicketInfoServiceImpl.java
  26. 2
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/FirstWorkTicketServiceImpl.java
  27. 8
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/feign/OperateTicketClient.java
  28. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/TwoTicketMatterLibraryMapper.xml
  29. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketDelayMapper.xml
  30. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketFlowMapper.xml
  31. 2
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketInfoMapper.xml
  32. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketMembersChangeMapper.xml
  33. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketOperateTimeMapper.xml
  34. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketPrincipalChangeMapper.xml
  35. 0
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketSafetyMeasureMapper.xml
  36. BIN
      hzims-service/ticket/src/main/resources/template/电气第一种工作票模版.docx

2
hzims-service-api/common-api/src/main/java/com/hnac/hzims/vo/SafeCheckStatisticVO.java

@ -13,7 +13,7 @@ import java.io.Serializable;
*/
@ApiModel(value = "安全检查项目统计对象",description = "安全检查项目统计对象")
@Data
public class SafeCheckStatisticVO implements Serializable {
public class SafeCheckStatisticVO {
@ApiModelProperty(value = "项目类型")
private String projectType;

2
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/ScheduledConstant.java

@ -11,4 +11,6 @@ public interface ScheduledConstant {
String THIRTY_DAY_POWER_GENERATION = "thirtyDayPowerGeneration";
String THIS_DAY_POWER_GENERATION = "thisDayPowerGeneration";
String LOAD_THREE_YEAR_POWER_GENERATION = "loadThreeYearPowerGeneration";
}

19
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerStationVo.java

@ -1,6 +1,7 @@
package com.hnac.hzims.operational.main.vo;
import com.hnac.hzims.hzimsweather.response.weather.Daily;
import com.hnac.hzims.operational.main.vo.pv.PowerRainVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -45,30 +46,42 @@ public class HydropowerStationVo {
@ApiModelProperty(value = "总发电负荷单位")
private String powerUnit;
@ApiModelProperty(value = "容量利用率")
private Double capacityRate;
@ApiModelProperty(value = "月计划发电量")
private Float planPowerMon;
@ApiModelProperty(value = "年计划发电量")
private Float planPowerYear;
@ApiModelProperty(value = "月发电量")
private Float powerMon;
@ApiModelProperty(value = "月发电量完成率")
private Double powerRateMon;
@ApiModelProperty(value = "年计划发电量")
private Float planPowerYear;
@ApiModelProperty(value = "年发电量")
private Float powerYear;
@ApiModelProperty(value = "年发电完成率")
private Double powerRateYear;
@ApiModelProperty(value = "今日发电量")
private Float powerDay;
@ApiModelProperty(value = "昨日发电量")
private Float powerYesterDay;
@ApiModelProperty(value = "站点实时温度")
private String temp;
@ApiModelProperty(value = "七日内天气")
private List<Daily> weather;
@ApiModelProperty(value = "降雨/发电量曲线")
private List<PowerRainVo> powerRains;
@ApiModelProperty(value = "前水位曲线数据")
private Map<Integer,String> frontCurveMap;

19
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/HydropowerUnitTargetVo.java

@ -5,7 +5,6 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* @author ysj
@ -29,12 +28,30 @@ public class HydropowerUnitTargetVo {
@ApiModelProperty(value = "当年发电量")
private Float powerYear;
@ApiModelProperty(value = "当年发电量")
private Float powerYesterYear;
@ApiModelProperty(value = "当月发电量")
private Float powerMon;
@ApiModelProperty(value = "当日发电量")
private Float powerDay;
@ApiModelProperty(value = "昨日发电量")
private Float powerYesterDay;
@ApiModelProperty(value = "本次开机时间")
private String startDownTime;
@ApiModelProperty(value = "本次开机时长")
private Double startupDownDuration;
@ApiModelProperty(value = "年停机时长")
private Double shutDownDurationYear;
@ApiModelProperty(value = "年开机时长")
private Double startupDurationYear;
@ApiModelProperty(value = "当日机组有功功率")
private List<ActivePowerVo> activePowerVoList;

26
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/pv/PowerRainVo.java

@ -0,0 +1,26 @@
package com.hnac.hzims.operational.main.vo.pv;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author ysj
*/
@Data
@ApiModel(value = "当日机组有功功率")
public class PowerRainVo {
@ApiModelProperty(value = "日期")
private String date;
@ApiModelProperty(value = "发电量")
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double generate;
@ApiModelProperty(value = "降雨")
@JsonSerialize(nullsUsing = NullSerializer.class)
private Double rain;
}

2
hzims-service-api/inspect-api/src/main/java/com/hnac/hzinfo/inspect/task/feign/IInspectTaskClient.java

@ -42,7 +42,7 @@ public interface IInspectTaskClient {
* @param inspectType 查询类型 1为运行人员 2管理及其他人员
* @return
*/
@GetMapping(EXPIRE_INSPECT)
@GetMapping(GET_INSPECT_TASK_CHECK)
R<SafeCheckStatisticVO> getInspectTaskCheck(@RequestParam("startDate") String startDate,
@RequestParam("endDate") String endDate,
@RequestParam("dept") Long dept,

6
hzims-service/hzims-middle/src/main/java/com/hnac/hzims/middle/MiddleApplication.java

@ -15,12 +15,6 @@ import org.springframework.context.annotation.ComponentScan;
@MapperScan(basePackages = {"com.hnac.hzinfo.**.mapper","com.hnac.hzims.**.mapper"})
@EnableFeignClients(basePackages = {"org.springblade", "com.hnac"})
public class MiddleApplication {
// static {
// System.setProperty("spring.cloud.nacos.discovery.server-addr", "http://175.6.40.67:10042");
// System.setProperty("spring.cloud.nacos.config.server-addr", "http://175.6.40.67:10042");
// System.setProperty("spring.cloud.nacos.username", "nacos");
// System.setProperty("spring.cloud.nacos.password", "nacos");
// }
public static void main(String[] args) {
BladeApplication.run("hzims-middle", MiddleApplication.class, args);

17
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/GenerationScheduledTask.java

@ -8,6 +8,7 @@ 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.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@ -69,4 +70,20 @@ public class GenerationScheduledTask {
return new ReturnT<>("SUCCESS");
}
/**
* 新版-近3年发电量
* @param param
* @return
*/
//@XxlJob(LOAD_THREE_YEAR_POWER_GENERATION)
@Scheduled(cron = "0/40 * * * * ? ")
public ReturnT<String> loadThreeYearPowerGeneration() {
String param = "";
if (Func.isBlank(param)) {
param = DateUtil.format(new Date(), "yyyy-MM");
}
service.loadThreeYearPowerGeneration(param,Arrays.asList(HomePageConstant.HYDROPOWER,HomePageConstant.PHOTOVOLTAIC),2,3);
return new ReturnT<>("SUCCESS");
}
}

8
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java

@ -8,6 +8,7 @@ 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.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@ -58,9 +59,10 @@ public class RealTargetScheduledTask {
/**
* 水电站-机组指标加载
*/
@XxlJob(LOAD_HYDROPOWER_UNIT_TARGET)
//@Scheduled(cron = "0/40 * * * * ? ")
public ReturnT<String> loadHydropowerTarget(String param) {
//@XxlJob(LOAD_HYDROPOWER_UNIT_TARGET)
@Scheduled(cron = "0/40 * * * * ? ")
public ReturnT<String> loadHydropowerTarget() {
String param = "";
if (Func.isBlank(param)) {
param = DateUtil.format(new Date(), "yyyy-MM");
}

4
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/ObtainGenerationService.java

@ -1,5 +1,7 @@
package com.hnac.hzims.scheduled.service.operation.home;
import java.util.List;
/**
* @author ysj
*/
@ -10,4 +12,6 @@ public interface ObtainGenerationService {
void thirtyDayPowerGeneration(String param);
void thisDayPowerGeneration(String param);
void loadThreeYearPowerGeneration(String param, List<Integer> types, Integer serveType,int year);
}

65
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/ObtainGenerationServiceImpl.java

@ -2,6 +2,7 @@ package com.hnac.hzims.scheduled.service.operation.home.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.hnac.hzims.equipment.entity.ThirtyGenerationEntity;
@ -59,8 +60,11 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
@Value("${hzims.equipment.emInfo.emInfoList}")
public String device_cache_cofig_final;
private final static String recent_year_power_data = "hzims:operation:key:power:data";
private static final ExecutorService pool = new ThreadPoolExecutor(10, 10, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(1024), new ThreadFactoryBuilder().setNameFormat("obtain-generation-pool-%d").build() , new ThreadPoolExecutor.CallerRunsPolicy());
/**
* 设备近3年发电量数据 : 按月分割
* @param param
@ -131,8 +135,8 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
CountDownLatch countDownLatch = new CountDownLatch(limits.size());
List<ThirtyGenerationEntity> saves = new CopyOnWriteArrayList<>();
for(List<StationEntity> item : limits){
try{
pool.submit(()->{
try{
item.forEach(station->{
// 站点设备集合
List<EminfoAndEmParamVo> eminfos = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList());
@ -175,10 +179,11 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
});
countDownLatch.countDown();
log.error("save_generation_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
}catch (Exception e){
countDownLatch.countDown();
log.error("save_generation_execute_complete_error : {}" ,e.getMessage());
}
});
}
// 等待所有线程执行完成
try {
@ -216,9 +221,7 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) - 3);
calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH));
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00";
stations.forEach(station->{
this.threeGenerateService.saveBatch(this.saveFillGenerate(station,start,end));
});
stations.forEach(station-> this.threeGenerateService.saveBatch(this.saveFillGenerate(station,start,end)));
}
/**
@ -306,6 +309,7 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
log.error("save_generation_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
}catch (Exception e){
countDownLatch.countDown();
log.error("save_generation_execute_complete_error : {}" ,e.getMessage());
}
}
@ -378,6 +382,7 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
log.error("save_generation_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
}catch (Exception e){
countDownLatch.countDown();
log.error("save_generation_execute_complete_error : {}" ,e.getMessage());
}
}
@ -437,4 +442,54 @@ public class ObtainGenerationServiceImpl implements ObtainGenerationService {
private static Integer countStep(Integer size) {
return (size + 3 - 1) / 3;
}
/**
* 新版-近3年发电量
* @param param
*/
@Override
public void loadThreeYearPowerGeneration(String param, List<Integer> types, Integer serveType,int year) {
// 站点查询
List<StationEntity> stations = stationService.list(new LambdaQueryWrapper<StationEntity>() {{
if (CollectionUtil.isNotEmpty(types)) {
in(StationEntity::getType, types);
}
}});
// 开始时间
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH) + 12);
calendar.add(Calendar.DATE, -calendar.get(Calendar.DATE) + 1);
String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE);
// 结束日期
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) - year);
calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH));
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE);
List<ThreeGenerationEntity> generations = threeGenerateService.list(Wrappers.<ThreeGenerationEntity>lambdaQuery()
.in(ThreeGenerationEntity::getStationId,stations.stream().map(StationEntity::getCode).collect(Collectors.toList()))
.ge(ThreeGenerationEntity::getStrMonth,start)
.le(ThreeGenerationEntity::getStrMonth,end)
);
if(CollectionUtil.isEmpty(generations)){
return;
}
Map<String,List<ThreeGenerationEntity>> map = generations.stream().collect(Collectors.groupingBy(ThreeGenerationEntity::getStationId));
// 定义接收参数
Map<String, Map<String, Float>> container = new HashMap<>();
map.forEach((key, value) -> {
Optional<StationEntity> optional = stations.stream().filter(o -> o.getCode().equals(key)).findFirst();
if (!optional.isPresent()) {
return;
}
// 根据月份分组
Map<String, List<ThreeGenerationEntity>> months = value.stream().collect(Collectors.groupingBy(ThreeGenerationEntity::getStrMonth));
// 接收月份发电量对象
Map<String, Float> son = new HashMap<>();
// 遍历月份数据
months.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(iter -> son.put(iter.getKey(), (float) iter.getValue().stream().mapToDouble(o -> o.getGenerate().doubleValue()).sum()));
container.put(optional.get().getCode(), son);
});
redisTemplate.opsForValue().set(recent_year_power_data, container);
}
}

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

@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.hnac.hzims.EquipmentConstants;
import com.hnac.hzims.equipment.entity.EmParamEntity;
import com.hnac.hzims.equipment.entity.ThirtyGenerationEntity;
import com.hnac.hzims.equipment.entity.ThreeGenerationEntity;
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo;
import com.hnac.hzims.hzimsweather.feign.IHeWeatherWeatherClient;
import com.hnac.hzims.hzimsweather.vo.RainFallCountByMonthVo;
@ -19,6 +21,8 @@ import com.hnac.hzims.operational.station.entity.HzimsAnalyzeModelStationEntity;
import com.hnac.hzims.operational.station.entity.StationEntity;
import com.hnac.hzims.scheduled.service.equipment.DeviceParamService;
import com.hnac.hzims.scheduled.service.equipment.DeviceService;
import com.hnac.hzims.scheduled.service.equipment.ThirtyGenerateService;
import com.hnac.hzims.scheduled.service.equipment.ThreeGenerateService;
import com.hnac.hzims.scheduled.service.operation.fill.*;
import com.hnac.hzims.scheduled.service.operation.home.ModelStationService;
import com.hnac.hzims.scheduled.service.operation.home.RealTargetService;
@ -92,6 +96,10 @@ public class RealTargetServiceImpl implements RealTargetService {
private final ModelStationService modelStationService;
private final ThreeGenerateService threeGenerateService;
private final ThirtyGenerateService thirtyGenerateService;
private final RedisTemplate redisTemplate;
private final IHeWeatherWeatherClient heWeatherWeatherClient;
@ -102,6 +110,7 @@ public class RealTargetServiceImpl implements RealTargetService {
private final DeviceDataClient deviceDataClient;
@Value("${hzims.equipment.emInfo.emInfoList}")
public String device_cache_cofig_final;
@ -272,10 +281,17 @@ public class RealTargetServiceImpl implements RealTargetService {
if(CollectionUtil.isEmpty(stations)){
return;
}
// 设备30日发电量
List<ThirtyGenerationEntity> generations = this.thirtyGenerations(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()));
// 设备当年发电量
List<ThreeGenerationEntity> generationYears = this.threeGenerations(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()));
// 设备去年发电量
List<ThreeGenerationEntity> generationYesterYears = this.threeYesterGenerations(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()));
// 补充填补发电指标
List<HydropowerUnitTargetVo> targets = this.generteFill(stations);
// 水电站设备
List<EminfoAndEmParamVo> devices = this.pumpDevices(stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()));
Random random = new Random();
if(CollectionUtil.isNotEmpty(devices)){
CountDownLatch countDownLatch = new CountDownLatch(devices.size());
for(EminfoAndEmParamVo device : devices) {
@ -283,19 +299,34 @@ public class RealTargetServiceImpl implements RealTargetService {
try{
HydropowerUnitTargetVo target = new HydropowerUnitTargetVo();
target.setDeptId(device.getCreateDept());
Optional<StationEntity> station = stations.stream().filter(o->o.getRefDept().equals(device.getCreateDept())).findFirst();
station.ifPresent(stationEntity -> target.setDeptName(stationEntity.getName()));
target.setDeviceCode(device.getEmCode());
target.setDeviceName(device.getName());
target.setDeptName(device.getName());
// 当年发电量
target.setPowerYear(this.getGenerationPower(device, 0));
target.setPowerYear(this.devicePowerYear(generationYears,device));
// 去年发电量
target.setPowerYesterYear(this.devicePowerYesterYear(generationYesterYears,device));
// 当月发电量
target.setPowerMon(this.getGenerationPower(device, 1));
target.setPowerMon(this.devicePowerMon(generationYears,device));
// 当日发电量
target.setPowerDay(this.getGenerationPower(device, 2));
// 当天有功功率
target.setPowerDay(this.devicePowerDay(generations,device));
// 昨日发电量
target.setPowerYesterDay(this.devicePowerYesterDay(generations,device));
// 近24小时有功功率
target.setActivePowerVoList(this.getLoadsByDay(device));
// 30天发电量
target.setGenerationPowerVoList(this.getGenerationPowerList(device));
target.setGenerationPowerVoList(this.getGenerationPowerList(generations,device));
// FIXME 本次开机/停机时间
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE,random.nextInt(1440));
target.setStartDownTime(DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATETIME));
// FIXME 本次开/停机时长
target.setStartupDownDuration(random.nextDouble() * 24);
// FIXME 今年开机时长
target.setStartupDurationYear(random.nextDouble() * 5024);
// FIXME 今年停机时长
target.setShutDownDurationYear(5024 - target.getStartupDurationYear());
targets.add(target);
countDownLatch.countDown();
}catch (Exception exception){
@ -314,9 +345,79 @@ public class RealTargetServiceImpl implements RealTargetService {
if(CollectionUtil.isEmpty(targets)){
return;
}
redisTemplate.opsForValue().set(load_hydropower_unit_target_key,targets);
}
/**
* 去年发电量
* @param generations
* @param device
* @return
*/
private Float devicePowerYesterYear(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) {
if(CollectionUtil.isEmpty(generations)){
return 0f;
}
return (float) generations.stream().filter(o -> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode())).mapToDouble(o->o.getGenerate().doubleValue()).sum();
}
/**
* 当年发电量
* @param generations
* @param device
* @return
*/
private Float devicePowerYear(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) {
if(CollectionUtil.isEmpty(generations)){
return 0f;
}
return (float) generations.stream().filter(o -> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode())).mapToDouble(o->o.getGenerate().doubleValue()).sum();
}
/**
* 当月发电量
* @param generations
* @param device
* @return
*/
private Float devicePowerMon(List<ThreeGenerationEntity> generations, EminfoAndEmParamVo device) {
if(CollectionUtil.isEmpty(generations)){
return 0f;
}
return (float) generations.stream().filter(o-> StringUtil.isNotBlank(o.getDeviceCode()) && o.getDeviceCode().equals(device.getEmCode()) && o.getStrMonth().contains(DateUtil.format(new Date(),"yyyy-MM"))).mapToDouble(o->o.getGenerate().doubleValue()).sum();
}
/**
* 设备当日发电量
* @param generations
* @param device
* @return
*/
private Float devicePowerDay(List<ThirtyGenerationEntity> generations, EminfoAndEmParamVo device) {
if(CollectionUtil.isEmpty(generations)){
return 0f;
}
return (float) generations.stream().filter(o->o.getDeviceCode().equals(device.getEmCode()) && o.getStrDay().contains(DateUtil.format(new Date(),DateUtil.PATTERN_DATE))).mapToDouble(o->o.getGenerate().doubleValue()).sum();
}
/**
* 设备昨日发电量
* @param generations
* @param device
* @return
*/
private Float devicePowerYesterDay(List<ThirtyGenerationEntity> generations, EminfoAndEmParamVo device) {
if(CollectionUtil.isEmpty(generations)){
return 0f;
}
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH,-1);
return (float) generations.stream().filter(o->o.getDeviceCode().equals(device.getEmCode()) && o.getStrDay().contains(DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE))).mapToDouble(o->o.getGenerate().doubleValue()).sum();
}
/**
* 水利-泵组实时加载
* @param param
@ -1382,17 +1483,19 @@ public class RealTargetServiceImpl implements RealTargetService {
* @return
*/
private List<ActivePowerVo> getLoadsByDay(EminfoAndEmParamVo device) {
// 开始日期
String start = DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 00:00:00";
Calendar calendar = Calendar.getInstance();
// 结束日期
String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATE) + " 23:59:59";
String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATETIME);
calendar.add(Calendar.DAY_OF_MONTH,-1);
// 开始日期
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00";
List<AnalyseDataTaosVO> records = dataService.periodTargetData(start, end, 3, 2, device.getEmCode(), HomePageConstant.PV_LOAD);
if (CollectionUtil.isEmpty(records)) {
return new ArrayList<>();
}
return records.stream().map(record -> {
ActivePowerVo load = new ActivePowerVo();
Date time = DateUtil.parse(record.getTs(), "yyyy-MM-dd HH:mm:ss.s");
Date time = DateUtil.parse(record.getTs(), "yyyy-MM-dd HH:mm:ss");
load.setStrHour(DateUtil.format(time,"yyyy-MM-dd HH"));
load.setHour(time.getHours());
if(StringUtil.isNotBlank(record.getVal())){
@ -1469,10 +1572,14 @@ public class RealTargetServiceImpl implements RealTargetService {
target.setDeptName(station.getName());
// 当年发电量
target.setPowerYear(generateService.generate(year,station.getCode()));
// FIXME 去年发电量
target.setPowerYesterYear(0f);
// 当月发电量
target.setPowerMon(generateService.generate(mon,station.getCode()));
// 当日发电量
target.setPowerDay(generateService.generate(day,station.getCode()));
// FIXME 昨日发电量
target.setPowerYesterDay(0f);
// 30天发电量
target.setGenerationPowerVoList(generateService.generate30Day(day,station.getCode()));
return target;
@ -1875,33 +1982,78 @@ public class RealTargetServiceImpl implements RealTargetService {
return dataService.periodTargetFloat(start,end,5,accessRules,device.getEmCode(),device.getRideCount(),HomePageConstant.HYDROPOWER_GENERATE_POWER);
}
/**
* 近30天发电量
* @param device
* 站点设备近30天发电量
* @param stations
* @return
*/
private List<GenerationPowerVo> getGenerationPowerList(EminfoAndEmParamVo device) {
private List<ThirtyGenerationEntity> thirtyGenerations(List<String> stations) {
Calendar calendar = Calendar.getInstance();
String end = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME);
calendar.add(Calendar.DAY_OF_MONTH,-29);
calendar.add(Calendar.HOUR_OF_DAY,-calendar.get(Calendar.HOUR_OF_DAY));
calendar.add(Calendar.MINUTE,-calendar.get(Calendar.MINUTE));
calendar.add(Calendar.SECOND,-calendar.get(Calendar.SECOND));
String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATETIME);
List<AnalyseDataTaosVO> records = dataService.periodTargetData(start,end,5,EquipmentConstants.CycleTypeEnum.DAY_CYCLE.getType(),device.getEmCode(),HomePageConstant.HYDROPOWER_GENERATE_POWER);
if(CollectionUtil.isEmpty(records)){
return new ArrayList<>();
String end = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATE);
calendar.add(Calendar.DAY_OF_MONTH,-30);
String start = DateUtil.format(calendar.getTime(), DateUtil.PATTERN_DATE);
return thirtyGenerateService.list(Wrappers.<ThirtyGenerationEntity>lambdaQuery()
.in(ThirtyGenerationEntity::getStationId,stations)
.ge(ThirtyGenerationEntity::getStrDay,start)
.le(ThirtyGenerationEntity::getStrDay,end)
);
}
return records.stream().map(record -> {
GenerationPowerVo generate = new GenerationPowerVo();
Date time = DateUtil.parse(record.getTs(), "yyyy-MM-dd HH:mm:ss.s");
generate.setDate(DateUtil.format(time,DateUtil.PATTERN_DATE));
if(StringUtil.isEmpty(record.getVal())){
generate.setGenerate(0f);
/**
* 站点设备今年发电量
* @param stations
* @return
*/
private List<ThreeGenerationEntity> threeGenerations(List<String> stations) {
return threeGenerateService.list(Wrappers.<ThreeGenerationEntity>lambdaQuery()
.in(ThreeGenerationEntity::getStationId,stations)
.like(ThreeGenerationEntity::getStrMonth,DateUtil.format(new Date(),"yyyy"))
);
}
/**
* 查询设备去年发电量
* @param stations
* @return
*/
private List<ThreeGenerationEntity> threeYesterGenerations(List<String> stations) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR,-1);
return threeGenerateService.list(Wrappers.<ThreeGenerationEntity>lambdaQuery()
.in(ThreeGenerationEntity::getStationId,stations)
.like(ThreeGenerationEntity::getStrMonth,DateUtil.format(calendar.getTime(),"yyyy"))
);
}
/**
* 设备近30天发电量组装
* @param generations
* @param device
* @return
*/
private List<GenerationPowerVo> getGenerationPowerList(List<ThirtyGenerationEntity> generations,EminfoAndEmParamVo device) {
Calendar calendar = Calendar.getInstance();
Date end = calendar.getTime();
calendar.add(Calendar.DAY_OF_MONTH,-30);
Date start = calendar.getTime();
List<GenerationPowerVo> powers = new ArrayList<>();
while (end.compareTo(start) > 0){
GenerationPowerVo power = new GenerationPowerVo();
if (CollectionUtil.isEmpty(generations)) {
power.setDate(DateUtil.format(start,DateUtil.PATTERN_DATE));
power.setGenerate(0f);
}else{
generate.setGenerate(Float.parseFloat(String.valueOf(Double.parseDouble(record.getVal()) * device.getRideCount())));
String date = DateUtil.format(start,DateUtil.PATTERN_DATE);
power.setDate(date);
power.setGenerate((float) generations.stream().filter(iter->iter.getDeviceCode().equals(device.getEmCode()) && iter.getStrDay().contains(date)).mapToDouble(o->o.getGenerate().doubleValue()).sum());
}
return generate;
}).collect(Collectors.toList());
calendar.add(Calendar.DAY_OF_MONTH,1);
powers.add(power);
start = calendar.getTime();
}
return powers;
}
}

1
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/feign/InspectTaskClient.java

@ -84,6 +84,7 @@ public class InspectTaskClient implements IInspectTaskClient {
* @param deptId
* @return
*/
@GetMapping(EXPIRE_INSPECT)
@Override
public List<TaskEntity> expireInspect(String start, String end, Long deptId) {
return taskService.list(Wrappers.<TaskEntity>lambdaQuery()

6
hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/impl/OperAccessLibraryServiceImpl.java

@ -86,8 +86,12 @@ public class OperAccessLibraryServiceImpl extends ServiceImpl<OperAccessLibraryM
}
@Override
public R<OperAccessLibraryVO> detail(Long id) {
public R<OperAccessLibraryVO>
detail(Long id) {
OperAccessLibraryVO detail = OperAccessLibraryWrapper.build(emInfoClient).entityVO(super.getById(id));
if(StringUtils.isEmpty(detail.getSafeInfos())){
R.data(detail);
}
detail.setDangerSources(dangerSourceClient.details(detail.getSafeInfos().split(",")));
return R.data(detail);
}

144
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java

@ -6,6 +6,7 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.hnac.hzims.equipment.entity.PlanGenerationEntity;
import com.hnac.hzims.equipment.feign.IPlanGenertionClient;
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo;
import com.hnac.hzims.hzimsweather.feign.IRainfallClient;
import com.hnac.hzims.hzimsweather.response.weather.Daily;
import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherDailyResponse;
import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherNowResponse;
@ -17,11 +18,11 @@ import com.hnac.hzims.operational.defect.entity.OperPhenomenonEntity;
import com.hnac.hzims.operational.defect.service.IOperPhenomenonService;
import com.hnac.hzims.operational.duty.service.IImsDutyMainService;
import com.hnac.hzims.operational.duty.vo.DutyMainInfoVo;
import com.hnac.hzims.operational.fill.entity.GenerateEntity;
import com.hnac.hzims.operational.main.constant.HomePageConstant;
import com.hnac.hzims.operational.main.entity.UserDeptEntity;
import com.hnac.hzims.operational.main.service.*;
import com.hnac.hzims.operational.main.vo.*;
import com.hnac.hzims.operational.main.vo.pv.PowerRainVo;
import com.hnac.hzims.operational.maintenance.entity.OperMaintenanceTaskEntity;
import com.hnac.hzims.operational.maintenance.service.IOperMaintenanceTaskService;
import com.hnac.hzims.operational.station.entity.StationEntity;
@ -92,6 +93,8 @@ public class HydropowerServiceImpl implements HydropowerService {
private final ISysClient sysClient;
private final IRainfallClient rainfallClient;
private final ITicketInfoClient ticketInfoClient;
private final IPlanGenertionClient planGenertionClient;
@ -139,6 +142,8 @@ public class HydropowerServiceImpl implements HydropowerService {
Map<String, HeWeatherWeatherNowResponse> weather = this.getWeather(Collections.singletonList(station.getCode()));
// 七天天气
Map<String, HeWeatherWeatherDailyResponse> weekWeather = this.getWeekWeather(Collections.singletonList(station.getCode()));
// 近30天降雨
List<Map<String, Object>> rains = this.get30DayRain(station.getCode());
HydropowerStationVo response = new HydropowerStationVo();
// 近年发电量数据
Map<String, Map<String, Float>> map = (Map<String, Map<String, Float>>) redisTemplate.opsForValue().get(recent_year_power_data);
@ -161,22 +166,104 @@ public class HydropowerServiceImpl implements HydropowerService {
response.setPowerSum(this.getPowerSum(realList,station.getRefDept()));
// 总有功单位
response.setPowerUnit(this.getPowerUnit(realList,station.getRefDept()));
// 容量利用率
response.setCapacityRate(this.getCapacityRate(response));
// 月计划发电量
response.setPlanPowerMon(this.getPlanPowerrMon(station.getCode()));
// 年计划发电量
response.setPlanPowerYear(this.getPlanPowerYear(station.getCode()));
// 年发电量、月发电量
this.stationMonthPower(station.getCode(),map,response);
// 水位、水位曲线
// 水位
this.handleWaterLeve(station.getCode(),response);
// 年发电量完成百分比
// 今日,昨日发电量
this.powerDay(station,targetList,response);
// 年发电量完成百分比曲线
response.setPowerYearMap(this.handlePowerFinish(Collections.singletonList(station),map));
// 设备信息
response.setDeviceList(this.getDevices(station,realList,targetList));
// 降雨
response.setPowerRains(this.getPowerRains(station,response.getDeviceList(),rains));
return response;
}
/**
* 站点发电降雨曲线
* @param devices
* @param rains
* @return
*/
private List<PowerRainVo> getPowerRains(StationEntity station,List<HydropowerUnitVo> devices, List<Map<String, Object>> rains) {
List<GenerationPowerVo> powers = new ArrayList<>();
if(CollectionUtil.isNotEmpty(devices)){
devices.forEach(device->{
if(ObjectUtil.isNotEmpty(device.getHydropowerPumpTargetVo()) && CollectionUtil.isNotEmpty(device.getHydropowerPumpTargetVo().getGenerationPowerVoList())){
powers.addAll(device.getHydropowerPumpTargetVo().getGenerationPowerVoList());
}
});
}
// 根据日期遍历
List<String> days = this.get30Day();
return days.stream().map(day->{
PowerRainVo powerRain = new PowerRainVo();
powerRain.setDate(day);
if(CollectionUtil.isEmpty(powers)){
powerRain.setGenerate(0.0);
}else{
powerRain.setGenerate(powers.stream().filter(o-> day.equals(o.getDate())).mapToDouble(GenerationPowerVo::getGenerate).sum());
}
if(CollectionUtil.isEmpty(rains)){
powerRain.setRain(0.0);
}else{
powerRain.setRain(rains.stream().mapToDouble(map->{
if (map.get("fx_date").equals(day)) {
Object object = map.get("precip");
if(ObjectUtil.isEmpty(object)){
return 0.0;
}else{
return Double.parseDouble(object.toString());
}
}
return 0.0;
}).sum());
}
return powerRain;
}).collect(Collectors.toList());
}
/**
* 容量利用率
* @param response
* @return
*/
private double getCapacityRate(HydropowerStationVo response) {
if(response.getInstalledCapacity() > 0 && response.getPowerSum() > 0){
return BigDecimal.valueOf(response.getPowerSum() / response.getInstalledCapacity() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue();
}
return 0.0;
}
/**
* 今日昨日发电量
* @param station
* @param targetList
* @param response
*/
private void powerDay(StationEntity station, List<HydropowerUnitTargetVo> targetList, HydropowerStationVo response) {
response.setPowerDay(0f);
response.setPowerYesterDay(0f);
if(CollectionUtil.isEmpty(targetList)){
return;
}
List<HydropowerUnitTargetVo> valids = targetList.stream().filter(o-> null != station.getRefDept() && station.getRefDept().equals(o.getDeptId())).collect(Collectors.toList());
if(CollectionUtil.isEmpty(valids)){
return;
}
response.setPowerDay((float)valids.stream().mapToDouble(HydropowerUnitTargetVo::getPowerDay).sum());
response.setPowerYesterDay((float)valids.stream().mapToDouble(HydropowerUnitTargetVo::getPowerYesterDay).sum());
}
/**
* 水电站-机组列表
* @param deptId
* @return
@ -223,10 +310,8 @@ public class HydropowerServiceImpl implements HydropowerService {
hydropowerUnitVo.setHydropowerPumpRealVo(real);
// 指标数据
if(CollectionUtil.isNotEmpty(validTargetList)){
List<HydropowerUnitTargetVo> target = targetList.stream().filter(o->real.getDeviceCode().equals(o.getDeviceCode())).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(target)){
hydropowerUnitVo.setHydropowerPumpTargetVo(target.get(0));
}
Optional<HydropowerUnitTargetVo> optional = targetList.stream().filter(o->real.getDeviceCode().equals(o.getDeviceCode())).findFirst();
optional.ifPresent(hydropowerUnitVo::setHydropowerPumpTargetVo);
}
list.add(hydropowerUnitVo);
}
@ -292,6 +377,50 @@ public class HydropowerServiceImpl implements HydropowerService {
}
/**
* 获取30天
* @return
*/
private List<String> get30Day() {
List<String> times = new ArrayList<>();
Calendar calendar = Calendar.getInstance();
Date end = calendar.getTime();
calendar.add(Calendar.HOUR_OF_DAY,-calendar.get(Calendar.HOUR_OF_DAY));
calendar.add(Calendar.MINUTE,-calendar.get(Calendar.MINUTE));
calendar.add(Calendar.SECOND,-calendar.get(Calendar.SECOND));
calendar.add(Calendar.DAY_OF_MONTH,-29);
Date start = calendar.getTime();
while (start.compareTo(end) < 0) {
times.add(DateUtil.format(calendar.getTime(),"yyyy-MM-dd"));
calendar.add(Calendar.DAY_OF_MONTH,1);
start = calendar.getTime();
}
return times;
}
/**
* 近30天降雨
* @param code
* @return
*/
private List<Map<String, Object>> get30DayRain(String code) {
Calendar calendar = Calendar.getInstance();
String endTime = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATETIME);
calendar.add(Calendar.DAY_OF_MONTH,-1);
String rainEnd = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE);
calendar.add(Calendar.HOUR_OF_DAY,-calendar.get(Calendar.HOUR_OF_DAY));
calendar.add(Calendar.MINUTE,-calendar.get(Calendar.MINUTE));
calendar.add(Calendar.SECOND,-calendar.get(Calendar.SECOND));
calendar.add(Calendar.DAY_OF_MONTH,-29);
String rainStart = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE);
R<List<Map<String, Object>>> rains = rainfallClient.getDurationRainFall(code,rainStart,rainEnd);
if(!rains.isSuccess() || CollectionUtil.isEmpty(rains.getData())){
return new ArrayList<>();
}
return rains.getData();
}
/**
* 获取设备装机容量
* @param list
* @param refDept
@ -438,7 +567,6 @@ public class HydropowerServiceImpl implements HydropowerService {
WaterLevelVo level = validList.get(0);
// 前池水位、当日水位曲线
response.setFrontWaterLevel(level.getFrontWaterLevel());
response.setFrontCurveMap(level.getFrontCurveMap());
}
/**

5
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarMapper.xml

@ -4,7 +4,7 @@
<select id="selectCarByYear" resultType="com.hnac.hzims.safeproduct.vo.CarMilesYearVO">
SELECT
DISTINCT t1.unit, t1.car_brand, t1.plate_number, t1.create_time
DISTINCT t1.unit, t1.car_brand, t1.plate_number, t1.create_time, t1.create_user, t1.create_dept
FROM
hzims_car t1
LEFT JOIN hzims_car_used_record t2 ON t1.id = t2.car_id
@ -22,7 +22,8 @@
<select id="selectMilesByCar" resultType="com.hnac.hzims.safeproduct.dto.CarMilesYearDTO">
SELECT
t1.unit, t1.car_brand, t1.plate_number, DATE_FORMAT(t2.end_time, '%m') as dateTime, sum(t2.miles) as miles
t1.unit, t1.car_brand, t1.plate_number, DATE_FORMAT(t2.end_time, '%m') as dateTime, sum(t2.miles) as miles,
t1.create_user, t1.create_dept
FROM
hzims_car t1
LEFT JOIN hzims_car_used_record t2 ON t1.id = t2.car_id

2
hzims-service/ticket/pom.xml

@ -15,7 +15,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- <poi.version>3.17</poi.version>-->
<documents4j.version>1.0.3</documents4j.version>
<documents4j.version>1.1.5</documents4j.version>
<swagger-bootstrap-ui.version>1.9.6</swagger-bootstrap-ui.version>
<!--特定版本-->
<poi.version>4.1.2</poi.version>

6
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/TicketApplication.java

@ -24,10 +24,4 @@ public class TicketApplication {
public static void main(String[] args) {
BladeApplication.run(TicketConstants.APP_NAME, TicketApplication.class, args);
}
// @Override
// protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// return BladeApplication.createSpringApplicationBuilder(builder, TicketConstants.APP_NAME, TicketApplication.class);
// }
}

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/OperRepairMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/OperRepairMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/xml/WorkTaskMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/repair/mapper/WorkTaskMapper.xml

18
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketInfoMapper.java

@ -1,16 +1,11 @@
package com.hnac.hzims.ticket.standardTicket.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hnac.hzims.ticket.standardTicket.entity.StandardTicketInfoEntity;
import com.hnac.hzims.ticket.standardTicket.vo.OperateTicketStatisticVO;
import com.hnac.hzims.ticket.standardTicket.vo.OperateVo;
import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -30,14 +25,9 @@ public interface StandardTicketInfoMapper extends UserDataScopeBaseMapper<Standa
int qualifiedCount(Integer valueOf, int year, int month);
/**
* 获取安全检查操作票项统计
* @param startDate 开始时间
* @param endDate 结束时间
* @param dept 机构ID
* @return
*/
SafeCheckStatisticVO getOperateTicketStatistic(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("dept") Long dept);
SafeCheckStatisticVO getOperateTicketStatistic(@Param("startDate") String startDate,
@Param("endDate") String endDate,
@Param("dept") Long dept);
/**
* 获取站点月报统计 - 操作票统计
@ -51,7 +41,6 @@ public interface StandardTicketInfoMapper extends UserDataScopeBaseMapper<Standa
@Param("endDate") String endDate,
@Param("deptIdList") List<Long> deptIdList);
/**
* 分页查询
* @param searchPage
@ -61,7 +50,6 @@ public interface StandardTicketInfoMapper extends UserDataScopeBaseMapper<Standa
Page<StandardTicketInfoEntity> selectPages(Page<StandardTicketInfoEntity> searchPage,
@Param(Constants.WRAPPER) QueryWrapper<StandardTicketInfoEntity> queryWrapper);
List<Map> selectTicketList(@Param(Constants.WRAPPER) QueryWrapper<StandardTicketInfoEntity> queryWrapper);
IPage<StandardTicketInfoEntity> pageCondition(IPage<StandardTicketInfoEntity> page, @Param(Constants.WRAPPER) QueryWrapper<StandardTicketInfoEntity> queryWrapper);
}

40
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/xml/StandardTicketInfoMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketInfoMapper.xml

@ -39,23 +39,6 @@
and MONTH(t.CREATE_TIME) = #{month}
and e.status = 1;
</select>
<select id="getOperateTicketStatistic" resultType="com.hnac.hzims.vo.SafeCheckStatisticVO">
select count(1) total,count(case when ie.`status` = 1 then 1 else null end) qualified
from hzims_standard_ticket_info ti
left join hzims_ticket_info_evaluate ie on ti.id = ie.ticket_id and ie.is_deleted = 0
<where>
ti.is_deleted = 0
<if test="startDate != null and startDate != ''">
and ti.create_time &gt; #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and ti.create_time &lt; #{endDate}
</if>
<if test="dept != null and dept != ''">
and ti.create_dept = #{dept}
</if>
</where>
</select>
<select id="getOperateTicketReportStatistic"
resultType="com.hnac.hzims.ticket.standardTicket.vo.OperateTicketStatisticVO">
select ti.*,ie.`status` evaluation from hzims_standard_ticket_info ti
@ -82,11 +65,6 @@
hzims_ticket_info_evaluate tie on sti.id = tie.ticket_id
${ew.customSqlSegment}
</select>
<select id="selectTicketList" resultType="java.util.Map">
select ti.*,tie.`status` isPass from hzims_standard_ticket_info ti
left join hzims_ticket_info_evaluate tie on ti.id = tie.ticket_id and tie.is_deleted = 0
${ew.customSqlSegment}
</select>
<select id="pageCondition" resultType="com.hnac.hzims.ticket.standardTicket.entity.StandardTicketInfoEntity">
SELECT oper.*,eva.`status` isQualified FROM hzims_standard_ticket_info oper
@ -94,4 +72,22 @@
ON oper.id = eva.ticket_id
${ew.customSqlSegment}
</select>
<select id="getOperateTicketStatistic" resultType="com.hnac.hzims.vo.SafeCheckStatisticVO">
select count(1) total,count(case when ie.`status` = 1 then 1 else null end) qualified
from hzims_standard_ticket_info ti
left join hzims_ticket_info_evaluate ie on ti.id = ie.ticket_id and ie.is_deleted = 0
<where>
ti.is_deleted = 0
<if test="startDate != null and startDate != ''">
and ti.create_time &gt; #{startDate}
</if>
<if test="endDate != null and endDate != ''">
and ti.create_time &lt; #{endDate}
</if>
<if test="dept != null">
and ti.create_dept = #{dept}
</if>
</where>
</select>
</mapper>

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/xml/StandardTicketMeasureMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/mapper/StandardTicketMeasureMapper.xml

11
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/IStandardTicketInfoService.java

@ -16,6 +16,7 @@ import com.hnac.hzims.ticket.twoTicket.vo.operation.StandardTicketInfoVo;
import com.hnac.hzims.ticket.twoTicket.vo.ticket.StandardTicketCountQueryVo;
import com.hnac.hzims.ticket.workTicket.vo.TicketMonthVO;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
import org.springblade.core.mp.support.BladePage;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
@ -81,10 +82,10 @@ public interface IStandardTicketInfoService extends IService<StandardTicketInfoE
/**
* 获取双票合格率
* @param List<Long> depatList
* @param LocalDateTime firstDateTime
* @param LocalDateTime now
* @return DoublePassRateVO
* @param depatList
* @param firstDateTime
* @param now
* @return
*/
DoublePassRateVO getDoublePassRate(List<Long> depatList, LocalDateTime firstDateTime, LocalDateTime now);
@ -151,4 +152,6 @@ public interface IStandardTicketInfoService extends IService<StandardTicketInfoE
* @param ticketId
*/
void exportOperateTicket(HttpServletResponse response, Long ticketId);
SafeCheckStatisticVO getOperateTicketStatistic(String startDate, String endDate, Long dept);
}

13
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/impl/StandardTicketInfoServiceImpl.java

@ -39,6 +39,7 @@ import com.hnac.hzims.ticket.workTicket.entity.WorkTicketInfoEntity;
import com.hnac.hzims.ticket.workTicket.service.IWorkTicketInfoService;
import com.hnac.hzims.ticket.workTicket.vo.TicketMonthVO;
import com.hnac.hzims.ticket.workTicket.vo.WorkTicketReportStatisticVO;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@ -938,6 +939,18 @@ public class StandardTicketInfoServiceImpl extends ServiceImpl<StandardTicketInf
PdfUtils.readPdf(response, pdfPath);
}
/**
* 获取安全检查操作票项统计
* @param startDate
* @param endDate
* @param dept
* @return
*/
@Override
public SafeCheckStatisticVO getOperateTicketStatistic(String startDate, String endDate, Long dept) {
return this.baseMapper.getOperateTicketStatistic(startDate,endDate,dept);
}
private void exportTicketWord(List<XWPFDocument> documents, String savePath) throws IOException {
FileOutputStream out = new FileOutputStream(savePath);
try {

2
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/FirstWorkTicketServiceImpl.java

@ -374,7 +374,7 @@ public class FirstWorkTicketServiceImpl extends ServiceImpl<WorkTicketInfoMapper
params.put("isHazard", workTicketInfoEntity.getIsHazard() ? "☑" : "□");
params.put("isRailway", workTicketInfoEntity.getIsRailway() ? "☑" : "□");
params.put("isLimited", workTicketInfoEntity.getIsLimited() ? "☑" : "□");
params.put("isStart",workTicketInfoEntity.getIsStart() ? "☑" : "□");
params.put("isStart", workTicketInfoEntity.getIsStart());
// 许可人许可环节
if(ObjectUtil.isNotEmpty(workTicketInfoEntity.getLicenseTime())) {
String licensorName = StringUtil.isNotBlank(workTicketInfoEntity.getLicensorName()) && Func.isNotEmpty(workTicketInfoEntity.getLicensorName()) ?

8
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/feign/OperateTicketClient.java

@ -1,8 +1,10 @@
package com.hnac.hzims.ticket.workTicket.feign;
import com.hnac.hzims.safeproduct.Constants;
import com.hnac.hzims.ticket.standardTicket.service.IStandardTicketInfoService;
import com.hnac.hzims.ticket.standardTicket.service.impl.StandardTicketInfoServiceImpl;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.ObjectUtil;
@ -18,9 +20,12 @@ import java.math.RoundingMode;
* @author hx
*/
@RestController
@AllArgsConstructor
@Slf4j
public class OperateTicketClient implements IOperateTicketClient {
private final IStandardTicketInfoService standardTicketInfoService;
/**
* 安全检查操作票事项统计
* @param startDate 开始时间
@ -33,8 +38,7 @@ public class OperateTicketClient implements IOperateTicketClient {
public R<SafeCheckStatisticVO> getOperateTicketCheck(@RequestParam("startDate") String startDate,
@RequestParam("endDate") String endDate,
@RequestParam("dept") Long dept) {
StandardTicketInfoServiceImpl service = SpringUtil.getBean(StandardTicketInfoServiceImpl.class);
SafeCheckStatisticVO vo = service.getBaseMapper().getOperateTicketStatistic(startDate,endDate,dept);
SafeCheckStatisticVO vo = standardTicketInfoService.getOperateTicketStatistic(startDate,endDate,dept);
//查询合格率 保留两位小数
if(vo == null){
vo = new SafeCheckStatisticVO();

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/TwoTicketMatterLibraryMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/TwoTicketMatterLibraryMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketDelayMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketDelayMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketFlowMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketFlowMapper.xml

2
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketInfoMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketInfoMapper.xml

@ -52,7 +52,7 @@
<if test="endDate != null and endDate != ''">
and ti.create_time &lt; #{endDate}
</if>
<if test="dept != null and dept != ''">
<if test="dept != null">
and ti.create_dept = #{dept}
</if>
</where>

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketMembersChangeMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketMembersChangeMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketOperateTimeMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketOperateTimeMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketPrincipalChangeMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketPrincipalChangeMapper.xml

0
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/xml/WorkTicketSafetyMeasureMapper.xml → hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/workTicket/mapper/WorkTicketSafetyMeasureMapper.xml

BIN
hzims-service/ticket/src/main/resources/template/电气第一种工作票模版.docx

Binary file not shown.
Loading…
Cancel
Save