From 90828f3832bc61241c3302386f072a2baf04bece Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Mon, 25 Mar 2024 16:23:19 +0800 Subject: [PATCH 01/24] =?UTF-8?q?#fdp=E5=91=8A=E8=AD=A6=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java index 97a8822..ca67dc9 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java @@ -5,6 +5,7 @@ import com.hnac.hzims.alarm.config.entity.AlarmEntity; import com.hnac.hzims.alarm.source.service.FdpAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; +import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -18,6 +19,7 @@ import java.util.Map; */ @Service +@Slf4j public class FdpMqttConsumer implements SubscribeCallBack { @Autowired private FdpAlarmService fdpAlarmService; @@ -25,7 +27,7 @@ public class FdpMqttConsumer implements SubscribeCallBack { private AlarmSaveService alarmSaveService; @Override public void onMessage(Map data) { - System.out.println("监听到消息"+data.toString()); + log.error("监听Fdp消息 : {}" ,data.toString()); String s = JSONObject.toJSONString(data); //消费代码 From ccf0bde55c53519bdedd1569c50b4aabb263b98f Mon Sep 17 00:00:00 2001 From: liwen Date: Tue, 26 Mar 2024 11:53:21 +0800 Subject: [PATCH 02/24] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E9=85=8D=E7=BD=AE=E4=B8=AD=E4=BF=AE=E6=94=B9=E7=AB=99?= =?UTF-8?q?=E7=82=B9=E6=8E=92=E5=BA=8F=E6=97=B6=E5=AF=BC=E8=87=B4=E7=AB=99?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF=E4=B8=A2=E5=A4=B1=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../station/controller/StationController.java | 18 ++++-------------- .../operational/station/service/IStationService.java | 6 ++++++ .../station/service/impl/StationServiceImpl.java | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java index c57b6bf..7351f30 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java @@ -104,21 +104,11 @@ public class StationController extends BladeController { return R.status(stationService.instanceProject(req)); } - @PostMapping("/updateBatch") + @PostMapping("/updateBatchSort") @ApiOperationSupport(order = 30) - @ApiOperation(value = "批量修改", notes = "传入站点列表") - public R updateBatch(@RequestBody List req) { - for (StationEntity stationEntity : req) { - if (StringUtil.isNotBlank(stationEntity.getCode()) || StringUtil.isNotBlank(stationEntity.getName())) { - List list = stationService.list(new LambdaQueryWrapper() {{ - eq(StationEntity::getCode, stationEntity.getCode()).or().eq(StationEntity::getName, stationEntity.getName()); - }}); - Assert.isTrue(CollectionUtil.isEmpty(list), () -> { - throw new ServiceException(stationEntity.getId() + "下站点名/编码已有对应记录,请找到相应记录做修改处理"); - }); - } - } - return R.status(stationService.updateBatchById(req)); + @ApiOperation(value = "批量修改排序", notes = "传入站点列表") + public R updateBatchSort(@RequestBody List req) { + return R.status(stationService.updateBatchSort(req)); } /** diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java index 00e2e35..19de00a 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java @@ -144,4 +144,10 @@ public interface IStationService extends BaseService { Boolean updateStation(StationEntity station); + /** + * 批量更新站点排序 + * @param req 站点列表 + * @return 更新是否成功 + */ + boolean updateBatchSort(List req); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java index 48de2c3..2f9a64d 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java @@ -896,4 +896,19 @@ public class StationServiceImpl extends BaseServiceImpl req) { + List stations = new ArrayList<>(); + for (StationEntity stationEntity : req) { + // 获取当前的站点信息 + StationEntity station = this.getById(stationEntity.getId()); + station.setSort(stationEntity.getSort()); + stations.add(station); + } + return this.updateBatchById(stations); + } } From 03ee59ba435d1b751f5a440dde78d7bdc3e435df Mon Sep 17 00:00:00 2001 From: liwen Date: Tue, 26 Mar 2024 18:20:00 +0800 Subject: [PATCH 03/24] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=B0=B4?= =?UTF-8?q?=E5=8A=9B=E6=9C=BA=E6=A2=B0=E5=B7=A5=E4=BD=9C=E7=A5=A8=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=BC=BA=E5=A4=B1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/水力机械工作票模版.docx | Bin 36331 -> 36398 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/hzims-service/ticket/src/main/resources/template/水力机械工作票模版.docx b/hzims-service/ticket/src/main/resources/template/水力机械工作票模版.docx index aba3a04988f47ed595d36289147c505856eab69f..e5b56d6a57f5e2b258c6fed5a2bb5aafb2b9b092 100644 GIT binary patch delta 16981 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 Date: Tue, 26 Mar 2024 19:30:07 +0800 Subject: [PATCH 04/24] =?UTF-8?q?#FDP=E5=91=8A=E8=AD=A6=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E6=97=A0=E6=95=88=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../alarm/config/constants/AlarmConstants.java | 2 + .../operational/main/constant/MainConstants.java | 3 ++ .../com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java | 8 +++- .../source/service/impl/FdpAlarmServiceImpl.java | 8 ++-- .../scheduled/mapper/alarm/AlarmQueryMapper.java | 3 +- .../scheduled/scheduled/AlarmScheduledTask.java | 23 +++++++++- .../scheduled/service/alarm/AlarmQueryService.java | 3 +- .../service/alarm/impl/AlarmQueryServiceImpl.java | 9 ++++ .../operation/home/impl/ShowServiceImpl.java | 50 +++++++++++++++------ .../resources/mapper/alarm/AlarmQueryMapper.xml | 7 ++- .../controller/OperAccessLibraryController.java | 4 +- .../access/service/IOperAccessLibraryService.java | 2 +- .../service/impl/OperAccessLibraryServiceImpl.java | 24 +++++++--- .../template/excel/access_import_template.xlsx | Bin 22528 -> 22528 bytes 14 files changed, 114 insertions(+), 32 deletions(-) diff --git a/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/constants/AlarmConstants.java b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/constants/AlarmConstants.java index 0a05c3f..1177139 100644 --- a/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/constants/AlarmConstants.java +++ b/hzims-service-api/alarm-api/src/main/java/com/hnac/hzims/alarm/config/constants/AlarmConstants.java @@ -64,4 +64,6 @@ public interface AlarmConstants { List HZ3000_TYPES = Arrays.asList("0","1","2","3","4","5","6","7","8","9","10","11","12"); String SMS_MESSAGE_TEMPLATE_CODE = "aliyun-alert-push"; + + String FDP_INVALID_STATUS = "0.0"; } diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java index 7c079bf..a080158 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/constant/MainConstants.java @@ -70,6 +70,9 @@ public interface MainConstants { // 集中监控数据处理 String CENTRALIZED_MONITORING = "centralizedMonitoring"; + // 清理历史告警数据 + String CLEAR_HISTORY_ALARM = "clearHistoryAlarm"; + // 开停机告警 String START_STOP_ALARM = "startStopAlarm"; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java index ca67dc9..e1513dd 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/FdpMqttConsumer.java @@ -2,11 +2,12 @@ package com.hnac.hzims.alarm.mqtt; import com.alibaba.fastjson.JSONObject; import com.hnac.hzims.alarm.config.entity.AlarmEntity; -import com.hnac.hzims.alarm.source.service.FdpAlarmService; import com.hnac.hzims.alarm.monitor.service.AlarmSaveService; +import com.hnac.hzims.alarm.source.service.FdpAlarmService; import com.hnac.hzinfo.subscribe.SubscribeCallBack; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.CollectionUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,11 +28,14 @@ public class FdpMqttConsumer implements SubscribeCallBack { private AlarmSaveService alarmSaveService; @Override public void onMessage(Map data) { - log.error("监听Fdp消息 : {}" ,data.toString()); String s = JSONObject.toJSONString(data); //消费代码 List alarmEntities = fdpAlarmService.receiveMessage(s); + if(CollectionUtil.isEmpty(alarmEntities)){ + return; + } + log.error("监听Fdp有效消息 : {}" ,alarmEntities); //统一数据处理 try { alarmSaveService.save(alarmEntities); diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java index 930e4fa..b16c48e 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/FdpAlarmServiceImpl.java @@ -26,8 +26,7 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; -import static com.hnac.hzims.alarm.config.constants.AlarmConstants.EARLY; -import static com.hnac.hzims.alarm.config.constants.AlarmConstants.EARLY_WARNING; +import static com.hnac.hzims.alarm.config.constants.AlarmConstants.*; /** * 等级告警实现类 @@ -73,6 +72,9 @@ public class FdpAlarmServiceImpl implements FdpAlarmService { if (ObjectUtils.isEmpty(alarms)) { return new ArrayList<>(); } + if(FDP_INVALID_STATUS.equals(alarms.getStatus())){ + return new ArrayList(); + } AlarmEntity entity = getAlarmEntity(alarms); return Collections.singletonList(entity); } @@ -87,7 +89,7 @@ public class FdpAlarmServiceImpl implements FdpAlarmService { entity.setAlarmType(EARLY); entity.setDeviceCode(item.getDeviceId()); entity.setDeviceName(item.getDeviceName()); - entity.setAlarmStatus(0); + entity.setAlarmStatus(Integer.valueOf(item.getStatus())); entity.setAlarmValue(item.getInfo()); entity.setStationId(item.getStation()); entity.setDiagReason(item.getDiagReason()); diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/alarm/AlarmQueryMapper.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/alarm/AlarmQueryMapper.java index ea13388..feba1f3 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/alarm/AlarmQueryMapper.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/mapper/alarm/AlarmQueryMapper.java @@ -2,11 +2,12 @@ package com.hnac.hzims.scheduled.mapper.alarm; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.hnac.hzims.alarm.config.entity.AlarmEntity; +import org.apache.ibatis.annotations.Param; /** * @author ysj */ public interface AlarmQueryMapper extends BaseMapper { - + void clear(@Param("alarmTime") String param); } \ No newline at end of file diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java index af12a59..b3e21d2 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/AlarmScheduledTask.java @@ -13,8 +13,7 @@ import org.springframework.stereotype.Component; import java.util.Date; -import static com.hnac.hzims.operational.main.constant.MainConstants.INTERRUPT_ALARM; -import static com.hnac.hzims.operational.main.constant.MainConstants.START_STOP_ALARM; +import static com.hnac.hzims.operational.main.constant.MainConstants.*; /** @@ -31,6 +30,21 @@ public class AlarmScheduledTask { @Autowired private InterruptionAlarmService interruptionService; + + /** + * 实时告警数据清除 + * @return ReturnT + */ + @XxlJob(CLEAR_HISTORY_ALARM) + //@Scheduled(cron = "0/40 * * * * ? ") + public ReturnT clearHistoryAlarm(String param) { + if (Func.isBlank(param)) { + param = DateUtil.format(new Date(), "yyyy-MM-dd 00:00:00"); + } + alarmQueryService.clearHistoryAlarm(param); + return new ReturnT<>("SUCCESS"); + } + /** * 开停机告警 * @return ReturnT @@ -45,6 +59,11 @@ public class AlarmScheduledTask { return new ReturnT<>("SUCCESS"); } + /** + * 数据通讯中断 + * @param param + * @return + */ @XxlJob(INTERRUPT_ALARM) //@Scheduled(cron = "0/40 * * * * ? ") public ReturnT interruption(String param) { diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/AlarmQueryService.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/AlarmQueryService.java index a8ea132..cfd3520 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/AlarmQueryService.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/AlarmQueryService.java @@ -12,8 +12,9 @@ public interface AlarmQueryService extends BaseService { void startStopAlarm(String param); + void clearHistoryAlarm(String param); + List bells(List codes); List aborts(List codes); - } \ No newline at end of file diff --git a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmQueryServiceImpl.java b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmQueryServiceImpl.java index a11c587..f38975f 100644 --- a/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmQueryServiceImpl.java +++ b/hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmQueryServiceImpl.java @@ -108,6 +108,15 @@ public class AlarmQueryServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper() {{ - 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 list = powerService.list(queryWrapper); - if(CollectionUtil.isEmpty(list)){ + // 计划发电量 + List plans = planService.planGeneration(stations.stream().map(StationEntity::getCode).collect(Collectors.toList()),null, DateUtil.format(new Date(),"yyyy")); + // 填报信息 + List winds = windService.list(Wrappers.lambdaQuery() + .in(WindEntity::getStationCode, stations.stream().map(StationEntity::getCode).collect(Collectors.toList())) + .likeRight(WindEntity::getFillDate, DateUtil.format(new Date(),"yyyy"))); + if(CollectionUtil.isEmpty(winds)){ return target; } - double plan = list.stream().mapToDouble(PowerEntity::getPlannedPowerMon).sum(); - double pass = list.stream().mapToDouble(power -> Double.parseDouble(power.getDoubleQualifyRate())).sum(); + double plan = plans.stream().mapToDouble(PlanGenerationEntity::getPlanGeneration).sum(); + double power = winds.stream().mapToDouble(WindEntity::getPower).sum(); + List devices = JSONObject.parseObject(redisTemplate.opsForValue().get(device_cache_cofig_final).toString(), new TypeReference>() {}); // 装机容量 - target.setTaget_one(list.stream().map(PowerEntity::getInstalledCapacity).collect(Collectors.toSet()).stream().mapToDouble(Double::valueOf).sum()); + target.setTaget_one(devices.stream().filter(o->stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(o.getCreateDept())).mapToDouble(EminfoAndEmParamVo::getInstalledCapacity).sum()); // 发电量 - target.setTaget_two(list.stream().mapToDouble(PowerEntity::getPowerMon).sum()); + target.setTaget_two(power); if(Math.abs(plan) > 0){ // 发电完成率 - target.setTaget_three(BigDecimal.valueOf(target.getTaget_two() / plan * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + target.setTaget_three(BigDecimal.valueOf(power / plan * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); } // 双票合格率 - target.setTaget_four(BigDecimal.valueOf(pass / list.size()).setScale(2, RoundingMode.HALF_UP).doubleValue()); + LocalDate firstDay = LocalDate.now().withDayOfYear(1); + LocalDateTime firstDateTime = LocalDateTime.of(firstDay, LocalTime.MIN); + R> result = sysClient.getDeptList(); + List areas = result.getData().stream().filter(dept -> stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList()).contains(dept.getId())).map(Dept::getParentId).collect(Collectors.toList()); + DoublePassRateVO pass = ticketService.doublePassRate(areas, firstDateTime, LocalDateTime.now()); + if (ObjectUtil.isNotEmpty(pass)) { + target.setTaget_four(Double.valueOf(pass.getDoublePassRate())); + } return target; } @@ -433,6 +445,12 @@ public class ShowServiceImpl implements ShowService { TargetVo target = new TargetVo(); target.setType(HomePageConstant.DISTRIBUTION_NETWORK); target.setTypeName(DictCache.getValue("stationType", HomePageConstant.DISTRIBUTION_NETWORK)); + List stations = stationService.list(Wrappers.lambdaQuery() + .eq(StationEntity::getServeType,HomePageConstant.HYDROPOWER_SERVETYPE) + .eq(StationEntity::getType,HomePageConstant.DISTRIBUTION_NETWORK)); + if(CollectionUtil.isEmpty(stations)){ + return target; + } // 线程池 ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("network-taget-pool-%d").build(); ScheduledExecutorService exe = new ScheduledThreadPoolExecutor(3, namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); @@ -446,6 +464,7 @@ public class ShowServiceImpl implements ShowService { List overs = overService.list(new QueryWrapper() {{ ge("create_time", firstDateTime); le("create_time", LocalDateTime.now()); + in("create_dept",stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); }}); if(CollectionUtil.isEmpty(overs)){ countDownLatch.countDown(); @@ -468,6 +487,7 @@ public class ShowServiceImpl implements ShowService { List solves = solveService.list(new QueryWrapper() {{ ge("create_time", firstDateTime); le("create_time", LocalDateTime.now()); + in("create_dept",stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); }}); if(CollectionUtil.isEmpty(solves)){ countDownLatch.countDown(); @@ -481,6 +501,7 @@ public class ShowServiceImpl implements ShowService { List others = otherService.list(new QueryWrapper() {{ ge("create_time", firstDateTime); le("create_time", LocalDateTime.now()); + in("create_dept",stations.stream().map(StationEntity::getRefDept).collect(Collectors.toList())); }}); if(CollectionUtil.isEmpty(others)){ countDownLatch.countDown(); @@ -648,6 +669,7 @@ public class ShowServiceImpl implements ShowService { return null; } list = R.getData(); + } // 根据参数查询有效站点 List stationList = this.stationByParams(list,deptId,typeList,serveType); diff --git a/hzims-service/hzims-scheduled/src/main/resources/mapper/alarm/AlarmQueryMapper.xml b/hzims-service/hzims-scheduled/src/main/resources/mapper/alarm/AlarmQueryMapper.xml index 3fd4b39..0433bed 100644 --- a/hzims-service/hzims-scheduled/src/main/resources/mapper/alarm/AlarmQueryMapper.xml +++ b/hzims-service/hzims-scheduled/src/main/resources/mapper/alarm/AlarmQueryMapper.xml @@ -1,5 +1,10 @@ - + + + + delete from hzims_alarm + where alarm_time < #{alarmTime} + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java index c0f6e98..092ee87 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/controller/OperAccessLibraryController.java @@ -114,7 +114,7 @@ public class OperAccessLibraryController extends BladeController { @ApiOperationSupport(order = 7) @PostMapping(value = "/import") @Operate(label = "检修库导入",type = com.hnac.hzinfo.log.contants.BusinessType.IMPORT,risk = Risk.LOW,ignore = false) - public void libraryImport(@RequestParam MultipartFile file) { - service.libraryImport(file); + public R libraryImport(@RequestParam MultipartFile file) { + return R.data(service.libraryImport(file)); } } \ No newline at end of file diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java index 9d83439..8d94f2c 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/access/service/IOperAccessLibraryService.java @@ -30,5 +30,5 @@ public interface IOperAccessLibraryService extends BaseService details = new ArrayList<>(); + StringBuilder failBuilder = new StringBuilder(); Long libraryId = null; for (int i = 2; i <= rows + 1; i++) { // 读取左上端单元格 @@ -178,19 +180,27 @@ public class OperAccessLibraryServiceImpl extends BaseServiceImpl 0){ + return "导入完成,序号:" + failBuilder.substring(0,failBuilder.toString().length()-1) + "数据未填写或者必传项未填写,未导入成功!"; + } + return "导入完成"; } /** diff --git a/hzims-service/operational/src/main/resources/template/excel/access_import_template.xlsx b/hzims-service/operational/src/main/resources/template/excel/access_import_template.xlsx index c8a46a2327b2ebe20a303de1fb5f0c2914274351..0bb642a05911ef011bd030bff694950aa46eb3de 100644 GIT binary patch delta 124 zcmZqJz}T>XaYGIZTf*eM%yIRTi&)wiYc~I6xo*R_b@D|=SH|wi;!b5^EDVeXGT!-D z&UjY_Wwr+HjGnyN$%=9B=66m`?A)9T91IK$j0~I%oSUt^jxtX+U=i5lC&|is#t&%j XX1U;H%&aC1h79JLFNWze0%bV>0_G^y delta 136 zcmZqJz}T>XaYGIZo5E?!t+#V07qPT4_H6#ia@~gU=;Vuzu8gxMi#wI6aWF6*$av>p zIpbZK2E)<#> Date: Wed, 27 Mar 2024 09:59:16 +0800 Subject: [PATCH 05/24] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E5=8D=95=E5=AF=BC=E5=87=BA=E6=95=B0=E6=8D=AE=E5=92=8C?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/hnac/hzims/spare/controller/SpWarehouseOutController.java | 6 +++--- .../java/com/hnac/hzims/spare/mapper/SpWarehouseOutMapper.java | 7 ++++--- .../hnac/hzims/spare/service/impl/SpWarehouseOutServiceImpl.java | 5 ----- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/controller/SpWarehouseOutController.java b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/controller/SpWarehouseOutController.java index 54e8b2f..cbfa7ba 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/controller/SpWarehouseOutController.java +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/controller/SpWarehouseOutController.java @@ -11,7 +11,6 @@ import com.hnac.hzims.spare.entity.SpWarehouseOutEntity; import com.hnac.hzims.spare.service.ISpWarehouseOutService; import com.hnac.hzims.spare.vo.SpWarehouseExportVO; import com.hnac.hzims.spare.vo.SpWarehouseOutVO; -import com.hnac.hzims.vo.VoteChartVo; import com.hnac.hzinfo.log.annotation.Business; import com.hnac.hzinfo.log.annotation.Operate; import io.swagger.annotations.Api; @@ -39,7 +38,6 @@ import java.util.Date; import java.util.List; import java.util.stream.Collectors; - /** * 控制器 * @@ -81,6 +79,7 @@ public class SpWarehouseOutController extends BladeController { IPage pages = sp_warehouse_outService.selectPageList(Condition.getPage(query),warehouseOutVO); return R.data(pages); } + /** * 分页 代码自定义代号 */ @@ -120,6 +119,7 @@ public class SpWarehouseOutController extends BladeController { e.printStackTrace(); } } + /** * 工单预警 */ @@ -165,7 +165,6 @@ public class SpWarehouseOutController extends BladeController { return R.status(sp_warehouse_outService.saveOrUpdate(sp_warehouse_out)); } - /** * 删除 代码自定义代号 */ @@ -176,6 +175,7 @@ public class SpWarehouseOutController extends BladeController { public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(sp_warehouse_outService.deleteLogic(Func.toLongList(ids))); } + /** * 完成流程 修改状态 */ diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/SpWarehouseOutMapper.java b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/SpWarehouseOutMapper.java index 78bb951..5927778 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/SpWarehouseOutMapper.java +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/mapper/SpWarehouseOutMapper.java @@ -1,10 +1,8 @@ package com.hnac.hzims.spare.mapper; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.hnac.hzims.spare.entity.SpWarehouseOutEntity; import com.hnac.hzims.spare.vo.SpWarehouseOutVO; -import feign.Param; import org.springblade.core.datascope.annotation.UserDataAuth; import org.springblade.core.datascope.mapper.UserDataScopeBaseMapper; @@ -19,6 +17,7 @@ import java.util.Map; public interface SpWarehouseOutMapper extends UserDataScopeBaseMapper { String selectMaxCode(Map params); + /** * 分页列表 * @param page @@ -27,8 +26,10 @@ public interface SpWarehouseOutMapper extends UserDataScopeBaseMapper selectPageList(IPage page, Map params); -// @UserDataAuth + + @UserDataAuth List selectListByCondition( Map params); + /** * 根据工单ID查询出库单编码 * @param ticketId diff --git a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/SpWarehouseOutServiceImpl.java b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/SpWarehouseOutServiceImpl.java index df050df..9e5e594 100644 --- a/hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/SpWarehouseOutServiceImpl.java +++ b/hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/SpWarehouseOutServiceImpl.java @@ -17,15 +17,12 @@ import com.hnac.hzims.spare.vo.WtSpBasicVO; import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springblade.core.launch.constant.FlowConstant; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; -import org.springblade.core.tool.support.Kv; -import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.entity.Dept; import org.springblade.system.feign.IDictBizClient; import org.springblade.system.feign.ISysClient; @@ -34,13 +31,11 @@ import org.springblade.system.user.feign.IUserClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.stream.Collectors; /** * 服务实现类 From 8c58f3cbd4a6fe8dba503fbd49fff213913695fc Mon Sep 17 00:00:00 2001 From: liwen Date: Wed, 27 Mar 2024 10:42:49 +0800 Subject: [PATCH 06/24] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E8=AF=8A?= =?UTF-8?q?=E6=96=AD=E7=BC=BA=E9=99=B7=E7=9A=84=E8=A1=A5=E5=85=85=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E6=94=AF=E6=8C=81=E8=A1=A8=E6=83=85=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hzims-service/equipment/src/main/resources/db/2.0.0.sql.1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hzims-service/equipment/src/main/resources/db/2.0.0.sql.1 b/hzims-service/equipment/src/main/resources/db/2.0.0.sql.1 index 8f62292..adcfe59 100644 --- a/hzims-service/equipment/src/main/resources/db/2.0.0.sql.1 +++ b/hzims-service/equipment/src/main/resources/db/2.0.0.sql.1 @@ -32,4 +32,7 @@ update bladex.blade_dict set dict_key = '2' where id = 1675699613977288706; update equipment.hzims_em_definition set type = '2' where type = '0'; update bladex.blade_dict set dict_key = '2' where id = 1675699613977288706; -update equipment.hzims_em_definition set type = '2' where type = '0'; \ No newline at end of file +update equipment.hzims_em_definition set type = '2' where type = '0'; + +-- 修改故障诊断任务表的字符集 +ALTER TABLE hzims_fdp_task CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; \ No newline at end of file From 05a6e3b804f1d4f66456070a6ed22a6613e8e3e8 Mon Sep 17 00:00:00 2001 From: yang_shj <1069818635@QQ.com> Date: Wed, 27 Mar 2024 19:46:56 +0800 Subject: [PATCH 07/24] =?UTF-8?q?#=E6=A3=80=E4=BF=AE=E5=8D=A1=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../defect/dto/OperDefectRepeatRatioDTO.java | 6 +- .../hzims/alarm/show/mapper/AlarmHandleMapper.xml | 3 +- .../defect/service/impl/OperDefectServiceImpl.java | 76 +++++++++++++--------- .../fill/controller/OverConfigController.java | 5 +- .../fill/service/OverConfigService.java | 3 + .../fill/service/OverDetailsService.java | 2 + .../fill/service/impl/OverConfigServiceImpl.java | 1 - .../fill/service/impl/OverDetailsServiceImpl.java | 15 +++++ 8 files changed, 78 insertions(+), 33 deletions(-) diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/defect/dto/OperDefectRepeatRatioDTO.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/defect/dto/OperDefectRepeatRatioDTO.java index 99d29d2..0baf91a 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/defect/dto/OperDefectRepeatRatioDTO.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/defect/dto/OperDefectRepeatRatioDTO.java @@ -27,9 +27,13 @@ public class OperDefectRepeatRatioDTO { // @ApiModelProperty(value = "缺陷等级名称") // private String defectLevelName; - @ApiModelProperty(value = "发生数量") + @ApiModelProperty(value = "重复缺陷发生数量") private Long happenNum = 0L; + @ApiModelProperty(value = "缺陷发生总数") + private Long happenSumNum = 0L; + + @ApiModelProperty(value = "占总缺陷的比率") private Double happenRatio = 0.0; diff --git a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml index e7991ea..971f958 100644 --- a/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml +++ b/hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml @@ -4,9 +4,10 @@