Browse Source

bug修改以及功能新增

master
walton 5 months ago
parent
commit
d3ed5d915b
  1. 3
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/entity/ImsDutyRecEntity.java
  2. 24
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/ExchangeGroupLeader.java
  3. 52
      hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/entity/PlanFlowResultInfo.java
  4. 12
      hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/entity/PlanResultInfo.java
  5. 3
      hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/vo/MessageWaterDispatchVo.java
  6. 12
      hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/vo/ReportVo.java
  7. 5
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/feign/IDangerSourceClient.java
  8. 5
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/feign/IDangerSourceClientFallBack.java
  9. 20
      hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/WtSpBasicServiceImpl.java
  10. 6
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/feign/EmInfoClient.java
  11. BIN
      hzims-service/inspect/lib/blade-starter-oss-minio-2.7.3.RELEASE.jar
  12. 10
      hzims-service/inspect/pom.xml
  13. 3
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/IObjectDangerService.java
  14. 40
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ObjectDangerServiceImpl.java
  15. 94
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/controller/TaskController.java
  16. 2
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/TaskJob.java
  17. 12
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/impl/SeizeTaskService.java
  18. 1
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/mapper/TaskMapper.java
  19. 39
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/mapper/TaskMapper.xml
  20. 4
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/ITaskObjectProjectContentService.java
  21. 2
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/ITaskService.java
  22. 11
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskObjectProjectContentServiceImpl.java
  23. 51
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskObjectServiceImpl.java
  24. 13
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskServiceImpl.java
  25. 1
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/dto/HisDataResultDTO.java
  26. 7
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mapper/PlanFlowResultInfoMapper.java
  27. 4
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mapper/PlanFlowResultInfoMapper.xml
  28. 7
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/IPlanFlowResultInfoService.java
  29. 8
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/MessageWaterLevelServiceImpl.java
  30. 11
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/PlanFlowResultInfoServiceImpl.java
  31. 185
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/PlanInfoServiceImpl.java
  32. 50
      hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/xxljob/ForecastOperationJob.java
  33. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java
  34. 9
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyMainController.java
  35. 13
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyRecController.java
  36. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyMainService.java
  37. 3
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyRecService.java
  38. 106
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java
  39. 17
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java
  40. 20
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java
  41. 6
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/vo/AppAreaDutyVo.java
  42. 13
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/feign/DangerSourceClient.java
  43. BIN
      hzims-service/ticket/lib/spire.xls.free-3.9.1.jar
  44. 2
      hzims-service/ticket/pom.xml
  45. 4
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/impl/OperationTicketServiceImpl.java
  46. 3
      hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/twoTicket/service/impl/FirstWorkTicketServiceImpl.java

3
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/entity/ImsDutyRecEntity.java

@ -102,5 +102,6 @@ public class ImsDutyRecEntity extends TenantEntity {
@QueryField(condition = SqlCondition.LIKE)
private String dealChain;
@ApiModelProperty(value = "补充说明")
private String content;
}

24
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/duty/vo/ExchangeGroupLeader.java

@ -0,0 +1,24 @@
package com.hnac.hzims.operational.duty.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
@Data
public class ExchangeGroupLeader implements Serializable {
@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
@JsonFormat(pattern = DateUtil.PATTERN_DATE)
private Date fromDate;
private Long fromClassId;
private Long fromDeptId;
@DateTimeFormat(pattern = DateUtil.PATTERN_DATE)
@JsonFormat(pattern = DateUtil.PATTERN_DATE)
private Date toDate;
private Long toClassId;
private Long toDeptId;
}

52
hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/entity/PlanFlowResultInfo.java

@ -0,0 +1,52 @@
package com.hnac.hzims.message_alarm.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@TableName("plan_flow_result_info")
public class PlanFlowResultInfo {
/**
* id
*/
@TableId(
value = "id",
type = IdType.ASSIGN_ID
)
private Long id;
/**
* 方案id
*/
@TableField("plan_id")
private Long planId;
/**
* 水库编码
*/
@TableField("stcd")
private String stcd;
/**
* 时间
*/
@TableField("time")
private LocalDateTime time;
/**
* 反推入库
*/
@TableField("reverse_flow")
private BigDecimal reverseFlow;
/**
* 模拟流量
*/
@TableField("simulated_flow")
private BigDecimal simulatedFlow;
}

12
hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/entity/PlanResultInfo.java

@ -3,11 +3,14 @@ package com.hnac.hzims.message_alarm.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@TableName("plan_result_info")
public class PlanResultInfo {
/**
* id
@ -40,29 +43,30 @@ public class PlanResultInfo {
* 降雨量
*/
@TableField("rain_fall")
private Double rainFall;
private BigDecimal rainFall;
/**
* 来流量
*/
@TableField("income_fall")
private Double incomeFall;
private BigDecimal incomeFall;
/**
* 水位
*/
@TableField("water_level")
private Double waterLevel;
private BigDecimal waterLevel;
/**
* 发电流量
*/
@TableField("power_flow")
private Double powerFlow;
private BigDecimal powerFlow;
/**
* 机组负荷
*/
@TableField("unit_load")
private Float unitLoad;
}

3
hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/vo/MessageWaterDispatchVo.java

@ -3,6 +3,7 @@ package com.hnac.hzims.message_alarm.vo;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@ -19,7 +20,7 @@ public class MessageWaterDispatchVo {
* 来水流量5天就需要有121个
*/
@JSONField(name = "q_in")
List<Double> qIn;
List<BigDecimal> qIn;
/**
* 水位库容曲线
*/

12
hzims-service-api/message-alarm-api/src/main/java/com/hnac/hzims/message_alarm/vo/ReportVo.java

@ -18,4 +18,16 @@ public class ReportVo {
private String actualLoad; //实际负荷
private String forecasLoad; //预测负荷
private List<String> setLoad; //机组负荷
/**
* 反推入库
*/
private String reverseFlow;
/**
* 模拟流量
*/
private String simulatedFlow;
/**
* 径流深
*/
// private String runoffDepth;
}

5
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/feign/IDangerSourceClient.java

@ -18,6 +18,7 @@ import java.util.List;
public interface IDangerSourceClient {
String API_PREFIX = "/feign/dangerSource";
String DETAILS = API_PREFIX + "/details";
String LIST = API_PREFIX + "/list";
String LIST_BY_TENANT_ID = API_PREFIX + "/listByTenantId";
String GET_SAFE_CREATE_TABLE = API_PREFIX + "/getSafeCreateTable";
@ -29,6 +30,9 @@ public interface IDangerSourceClient {
@GetMapping(DETAILS)
List<DangerSourceEntity> details(@RequestParam("ids") String[] ids);
@GetMapping(LIST)
List<DangerSourceEntity> list();
/**
* 根据条件查询危险源
*
@ -37,6 +41,7 @@ public interface IDangerSourceClient {
@GetMapping(LIST_BY_TENANT_ID)
List<SourceVO> listByTenantId(@RequestParam("tenantId") String tenantId);
@PostMapping(GET_SAFE_CREATE_TABLE)
List<CreateTableVO> getSafeCreateTable(@RequestParam("list") List<String> tableNames);
}

5
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/feign/IDangerSourceClientFallBack.java

@ -20,6 +20,11 @@ public class IDangerSourceClientFallBack implements IDangerSourceClient {
}
@Override
public List<DangerSourceEntity> list() {
return null;
}
@Override
public List<SourceVO> listByTenantId(String tenantId) {
log.error("远程调用失败,接口:" + LIST_BY_TENANT_ID);
return new ArrayList<>();

20
hzims-service/assets/src/main/java/com/hnac/hzims/spare/service/impl/WtSpBasicServiceImpl.java

@ -177,12 +177,20 @@ public class WtSpBasicServiceImpl extends BaseServiceImpl<WtSpBasicMapper, WtSpB
if (Func.isNotEmpty(spBasicEntity.getName()) && "工具".equals(spBasicEntity.getName())) {
// if(Func.isNotEmpty(spBasicEntity.getName())){
List<WtSpManagementEntity> list = managementService.list(Wrappers.<WtSpManagementEntity>query().lambda().
eq(WtSpManagementEntity::getName, spBasicEntity.getName()));
if (list.size() == 0) {
eq(WtSpManagementEntity::getName, spBasicEntity.getName())
.eq(WtSpManagementEntity::getId,spBasicEntity.getManagementId()));
List<Long> longList = new ArrayList<>();
if (list==null && list.size() == 0) {
if(spBasicEntity.getManagementId() != null) {
longList.add(spBasicEntity.getManagementId());
queryWrapper.lambda().in(WtSpBasicEntity::getManagementId, longList);
}else{
return null;
}
}else{
List<WtSpManagementEntity> result = managementService.list(Wrappers.<WtSpManagementEntity>query().lambda().like(WtSpManagementEntity::getAncestors, list.get(0).getId()));
List<Long> longList = new ArrayList<>();
if (result.size() > 0) {
for (int i = 0; i < result.size(); i++) {
longList.add(result.get(i).getId());
@ -195,7 +203,9 @@ public class WtSpBasicServiceImpl extends BaseServiceImpl<WtSpBasicMapper, WtSpB
} else {
return voPages;
}
spBasicEntity.setName(null);
}
// spBasicEntity.setName(null);
}
//调拨单新增特殊处理
if (Func.isNotEmpty(sign)) {
@ -247,7 +257,7 @@ public class WtSpBasicServiceImpl extends BaseServiceImpl<WtSpBasicMapper, WtSpB
}
BeanUtils.copyProperties(basicEntity, basicVO);
List<TicketInfoStatisticVO> ticketVOS = ticketInfoAllClient.getTicketStatistic("2022-02");
// List<TicketInfoStatisticVO> ticketVOS = ticketInfoAllClient.getTicketStatistic("2022-02");
// R<Dept> deptR = sysClient.getDept(basicEntity.getWaterPlantId());
// if(Func.isNotEmpty(deptR.getData())){

6
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/feign/EmInfoClient.java

@ -30,11 +30,11 @@ import java.util.stream.Collectors;
@RestController
public class EmInfoClient implements IEmInfoClient {
@Autowired
IEmInfoService service;
private IEmInfoService service;
@Autowired
IEmParamService paramService;
private IEmParamService paramService;
@Autowired
IEmAttachService attachService;
private IEmAttachService attachService;
@RequestMapping(value = DETAIL)

BIN
hzims-service/inspect/lib/blade-starter-oss-minio-2.7.3.RELEASE.jar

Binary file not shown.

10
hzims-service/inspect/pom.xml

@ -122,6 +122,8 @@
<groupId>org.springblade</groupId>
<artifactId>blade-starter-oss-minio</artifactId>
<version>2.7.3.RELEASE</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/blade-starter-oss-minio-2.7.3.RELEASE.jar</systemPath>
</dependency>
<dependency>
<groupId>com.hnac.hzims</groupId>
@ -241,6 +243,14 @@
<!-- <artifactId>maven-antrun-plugin</artifactId>-->
<!-- </plugin>-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--设置为true,以便把本地的system的jar也包括进来-->
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>

3
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/IObjectDangerService.java

@ -5,6 +5,7 @@ import org.springblade.core.mp.base.BaseService;
import com.hnac.hzinfo.inspect.obj.entity.ObjectDangerEntity;
import java.util.List;
import java.util.Map;
/**
@ -21,4 +22,6 @@ public interface IObjectDangerService extends BaseService<ObjectDangerEntity> {
*/
List<DangerSourceEntity> getDangerDetailByObjectId(Long objectId);
Map<Long,List<DangerSourceEntity>> getDangerDetail(List<Long> objectIds);
}

40
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/obj/services/impl/ObjectDangerServiceImpl.java

@ -11,7 +11,9 @@ import com.hnac.hzinfo.inspect.obj.services.IObjectDangerService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
@ -38,4 +40,42 @@ public class ObjectDangerServiceImpl extends BaseServiceImpl<ObjectDangerMapper,
return new ArrayList<>();
}
}
@Override
public Map<Long,List<DangerSourceEntity>> getDangerDetail(List<Long> objectIds) {
Map<Long,List<DangerSourceEntity>> res=new HashMap<>();
List<ObjectDangerEntity> dangers = this.list(Wrappers.<ObjectDangerEntity>lambdaQuery()
.in(ObjectDangerEntity::getObjectId, objectIds).orderByAsc(ObjectDangerEntity::getSort));
List<DangerSourceEntity> dangerSourceEntityList=sourceClient.list();
for(Long objId:objectIds){
List<Long> dangerIds =getDangerIds(dangers,objId);
List<DangerSourceEntity> tmp=getDangerSourceEntity(dangerIds,dangerSourceEntityList);
res.put(objId,tmp);
}
return res;
}
private List<Long> getDangerIds(List<ObjectDangerEntity> dangers,Long objId){
List<Long> ids=new ArrayList<>();
if(dangers!=null && !dangers.isEmpty()){
for(ObjectDangerEntity entity:dangers){
if(entity.getObjectId().equals(objId)){
ids.add(entity.getDangerId());
}
}
}
return ids;
}
private List<DangerSourceEntity> getDangerSourceEntity(List<Long> dangerIds,List<DangerSourceEntity> dangerSourceEntityList){
List<DangerSourceEntity> dangerSourceEntities=new ArrayList<>();
if(dangerSourceEntityList!=null && !dangerSourceEntityList.isEmpty()){
for(DangerSourceEntity entity:dangerSourceEntityList){
if(dangerIds.contains(entity.getId())){
dangerSourceEntities.add(entity);
}
}
}
return dangerSourceEntities;
}
}

94
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/controller/TaskController.java

@ -1,6 +1,8 @@
package com.hnac.hzinfo.inspect.task.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -141,6 +143,10 @@ public class TaskController extends BladeController {
}
if (task.getCurUserId() == -1) {
task.setCurUserId(null);
// if(task.getCreateDept()==null) {
// String deptId=AuthUtil.getDeptId();
// task.setCreateDept(Long.valueOf(deptId));
// }
}
List<TaskVo> list = taskService.getListPage(pages,task);
pages.setRecords(list);
@ -221,6 +227,15 @@ public class TaskController extends BladeController {
task.setCurUserId(AuthUtil.getUserId());
task.setTenantId(AuthUtil.getTenantId());
}
// if (task.getCurUserId() == -1) {
// task.setCurUserId(null);
// if(task.getCreateDept()==null) {
// String deptId=AuthUtil.getDeptId();
// task.setCreateDept(Long.valueOf(deptId));
// }
// }
List<TaskVo> list = taskService.getListPageOfPhone(pages,task);
pages.setRecords(list);
return R.data(pages);
@ -239,6 +254,19 @@ public class TaskController extends BladeController {
return R.data(pages);
}
@RequestMapping(value = "/getDeptTaskList", method = {RequestMethod.GET, RequestMethod.POST})
@ApiOperation(value = "获取机构下的所有巡检任务列表", notes = "传入task")
public R<IPage<TaskVo>> getDeptTaskList(TaskListQuery task, Query query) {
IPage<TaskVo> pages = Condition.getPage(query);
if(task.getCreateDept()==null) {//默认当前登录人机构
String deptId = AuthUtil.getDeptId();
task.setCreateDept(Long.valueOf(deptId));
}
List<TaskVo> list = taskService.getDeptTaskList(pages,task);
pages.setRecords(list);
return R.data(pages);
}
/**
* 开始任务
*/
@ -326,43 +354,43 @@ public class TaskController extends BladeController {
return R.data(list);
}
@Autowired
private IPushClient pushClient;
// @Autowired
// private IPushClient pushClient;
/**
* 测试消息推送
*/
@GetMapping("/testPush")
@ApiOperation(value = "测试消息推送", notes = "测试消息推送")
public R<Boolean> testPush(@ApiParam(value = "tags 多个,隔开", required = false) @RequestParam String tags,
@ApiParam(value = "tenantId", required = false) @RequestParam String tenantId) {
// 移动端消息推送 : 使用 用户id做TAG,前端注册用户id为TAG
PushInfoVO pushInfoVO = new PushInfoVO();
if(Func.isNotEmpty(tenantId)){
pushInfoVO.setTenantId(tenantId);
} else {
pushInfoVO.setTenantId(AuthUtil.getTenantId());
}
PushPlatform platform = PushPlatform.all();
Map<PushAudienceType, List<String>> audienceMap = new HashMap<>();
if(Func.isNotEmpty(tags)){
audienceMap.put(PushAudienceType.TAG, Arrays.asList(tags));
} else {
audienceMap.put(PushAudienceType.TAG, Arrays.asList("test"));
}
PushAudience audience = new PushAudience(false, audienceMap);
PushInfo pushInfo = new PushInfo("hzinfo-inspect"
, "测试后。。。。1"
, "测试内容"
, "测试后。。。。2"
, null
, platform
, audience);
pushInfoVO.setPushInfo(pushInfo);
pushClient.tenantPush(pushInfoVO);
return R.status(true);
}
// @GetMapping("/testPush")
// @ApiOperation(value = "测试消息推送", notes = "测试消息推送")
// public R<Boolean> testPush(@ApiParam(value = "tags 多个,隔开", required = false) @RequestParam String tags,
// @ApiParam(value = "tenantId", required = false) @RequestParam String tenantId) {
// // 移动端消息推送 : 使用 用户id做TAG,前端注册用户id为TAG
// PushInfoVO pushInfoVO = new PushInfoVO();
// if(Func.isNotEmpty(tenantId)){
// pushInfoVO.setTenantId(tenantId);
// } else {
// pushInfoVO.setTenantId(AuthUtil.getTenantId());
// }
//
// PushPlatform platform = PushPlatform.all();
// Map<PushAudienceType, List<String>> audienceMap = new HashMap<>();
// if(Func.isNotEmpty(tags)){
// audienceMap.put(PushAudienceType.TAG, Arrays.asList(tags));
// } else {
// audienceMap.put(PushAudienceType.TAG, Arrays.asList("test"));
// }
// PushAudience audience = new PushAudience(false, audienceMap);
// PushInfo pushInfo = new PushInfo("hzinfo-inspect"
// , "测试后。。。。1"
// , "测试内容"
// , "测试后。。。。2"
// , null
// , platform
// , audience);
// pushInfoVO.setPushInfo(pushInfo);
// pushClient.tenantPush(pushInfoVO);
// return R.status(true);
// }

2
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/TaskJob.java

@ -30,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
@ -97,6 +98,7 @@ public class TaskJob {
//关闭超过计划结束时间暂停状态或者已审核或者派发中的巡检计划
UpdateWrapper<PlanEntity> uwPlan = new UpdateWrapper<>();
uwPlan.lambda().set(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.FINISH_STATUS.getStatus()))
.set(PlanEntity::getUpdateTime,new Date())
.in(PlanEntity::getStatus, Integer.valueOf(PlanStatusEnum.PAUSE_STATUS.getStatus()),
Integer.valueOf(PlanStatusEnum.CHECK_STATUS.getStatus()),
Integer.valueOf(PlanStatusEnum.UNDERWAY_STATUS.getStatus()))

12
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/impl/SeizeTaskService.java

@ -105,8 +105,8 @@ public class SeizeTaskService extends TaskJobService implements ITaskJobService
if(taskUserList.size()>0){
taskUserService.saveBatch(taskUserList);
} else {
log.error("没有用户: plan = " + plan.toString());
XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + plan.toString());
log.error("没有用户: plan = " + JSONObject.toJSONString(plan));
XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + JSONObject.toJSONString(plan));
}
}
@ -126,7 +126,7 @@ public class SeizeTaskService extends TaskJobService implements ITaskJobService
/** 多次计划执行时间 **/
timeJsonArray = JSON.parseArray(plan.getExecTimeJson());
} else {
log.error("巡检计划未设置值班班次: plan = " + plan.toString());
log.error("巡检计划未设置值班班次: plan = " + JSONObject.toJSONString(plan));
return taskIds;
}
/** 多次任务 **/
@ -157,7 +157,7 @@ public class SeizeTaskService extends TaskJobService implements ITaskJobService
}
}
} else {
log.error("获取该班次值班人员为空, plan = " + plan.toString());
log.error("获取该班次值班人员为空, plan = " + JSONObject.toJSONString(plan));
return taskIds;
}
String reason = this.distributeTaskObjs(plan,task);
@ -229,8 +229,8 @@ public class SeizeTaskService extends TaskJobService implements ITaskJobService
if(taskUserList.size()>0){
taskUserService.saveBatch(taskUserList);
} else {
log.error("没有用户: plan = " + plan.toString());
XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + plan.toString());
log.error("没有用户: plan = " + JSONObject.toJSONString(plan));
XxlJobLogger.log("SeizeTaskService...没有任务用户: plan = " + JSONObject.toJSONString(plan));
}
return taskIds;
}

1
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/mapper/TaskMapper.java

@ -58,6 +58,7 @@ public interface TaskMapper extends UserDataScopeBaseMapper<TaskEntity> {
* @return
*/
List<TaskVo> getFinishTaskList(@Param("page") IPage<TaskVo> page,@Param("task") TaskListQuery task);
List<TaskVo> getDeptTaskList(@Param("page") IPage<TaskVo> page,@Param("task") TaskListQuery task);
/**
* phone端任务列表 不分页

39
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/mapper/TaskMapper.xml

@ -126,6 +126,9 @@
SELECT t.*,u.USER_ID from HZ_ST_EX_TASK t
LEFT JOIN HZ_ST_EX_TASK_USER u on t.ID=u.TASK_ID
where t.IS_DELETED=0 and u.IS_DELETED=0
<if test="task.createDept!=null">
and t.CREATE_DEPT like concat(#{task.createDept}, '%')
</if>
<if test="task.dutyId != null ">
and t.DUTY_ID=#{task.dutyId}
</if>
@ -215,6 +218,39 @@
order by t.UPDATE_TIME desc
</select>
<select id="getDeptTaskList" parameterType="com.hnac.hzinfo.inspect.task.vo.TaskListQuery" resultType="com.hnac.hzinfo.inspect.task.vo.TaskVo">
SELECT t.* from HZ_ST_EX_TASK t
where t.IS_DELETED=0
<if test="task.createDept!=null">
and t.CREATE_DEPT like concat(#{task.createDept}, '%')
</if>
<if test="task.planName != null and task.planName != ''">
and t.PLAN_NAME like concat('%', #{task.planName}, '%')
</if>
<if test="task.batchNumber != null and task.batchNumber != ''">
and t.BATCH_NUMBER like concat('%', #{task.batchNumber}, '%')
</if>
<if test="task.planStartTime != null">
and t.PLAN_START_TIME &gt;= #{task.planStartTime}
</if>
<if test="task.planEndTime != null">
and t.PLAN_START_TIME &lt;= #{task.planEndTime}
</if>
<if test="task.startTime != null">
and t.PLAN_END_TIME &gt;= #{task.startTime}
</if>
<if test="task.cycle != null and task.cycle != ''">
and t.CYCLE=#{task.cycle}
</if>
<if test="task.objectId != null and task.objectId != ''">
and tobj.OBJECT_ID=#{task.objectId}
</if>
<if test="task.autoVideo != null">
and t.AUTO_VIDEO=#{task.autoVideo}
</if>
order by t.UPDATE_TIME desc
</select>
<!--手机端任务列表 只显示 0未开始 1进行中 2暂停-->
<select id="getListPageOfPhone" parameterType="com.hnac.hzinfo.inspect.task.vo.TaskListQuery" resultType="com.hnac.hzinfo.inspect.task.vo.TaskVo">
SELECT t.* from HZ_ST_EX_TASK t
@ -222,6 +258,9 @@
left join HZ_ST_EX_OBJECT tobj on t.ID=tobj.TASK_ID
where t.IS_DELETED=0 and u.IS_DELETED=0 and tobj.IS_DELETED=0 and u.USER_ID=#{task.curUserId} and t.TENANT_ID = #{task.tenantId}
and t.STATUS in(0,1,2)
<if test="task.createDept!=null">
and t.CREATE_DEPT like concat(#{task.createDept}, '%')
</if>
<if test="task.planName != null and task.planName != ''">
and t.PLAN_NAME like concat('%', #{task.planName}, '%')
</if>

4
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/ITaskObjectProjectContentService.java

@ -1,10 +1,12 @@
package com.hnac.hzinfo.inspect.task.service;
import com.hnac.hzinfo.inspect.areamonthly.vo.TaskObjectProjectContentVO;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import org.springblade.core.mp.base.BaseService;
import com.hnac.hzinfo.inspect.task.entity.TaskObjectProjectContentEntity;
import java.util.List;
import java.util.Map;
/**
* 服务类
@ -15,6 +17,6 @@ public interface ITaskObjectProjectContentService extends BaseService<TaskObject
List<TaskObjectProjectContentEntity> getTaskObjectProjectContentList(TaskObjectProjectContentEntity topc);
void fillRealData(TaskObjectProjectContentVO contentVO);
void fillRealData(TaskObjectProjectContentVO contentVO, Map<Long, ContentEntity> contentMap);
}

2
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/ITaskService.java

@ -109,6 +109,8 @@ public interface ITaskService extends BaseService<TaskEntity> {
* @return
*/
List<TaskVo> getFinishTaskList(IPage<TaskVo> page,TaskListQuery task);
List<TaskVo> getDeptTaskList(IPage<TaskVo> page,TaskListQuery task);
/**
* 撤销领用

11
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskObjectProjectContentServiceImpl.java

@ -21,6 +21,7 @@ import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 服务实现类
@ -32,10 +33,7 @@ import java.util.List;
@Slf4j
public class TaskObjectProjectContentServiceImpl extends BaseServiceImpl<TaskObjectProjectContentMapper, TaskObjectProjectContentEntity> implements ITaskObjectProjectContentService {
private final ContentService contentService;
private final IAnalyseDataSearchClient analyseDataSearchClient;
private final IStationClient stationClient;
private final RedisClient redisClient;
@Override
public List<TaskObjectProjectContentEntity> getTaskObjectProjectContentList(TaskObjectProjectContentEntity topc) {
@ -43,9 +41,10 @@ public class TaskObjectProjectContentServiceImpl extends BaseServiceImpl<TaskObj
}
@Override
public void fillRealData(TaskObjectProjectContentVO contentVO) {
if(Func.isNotEmpty(contentVO.getContentId())) {
ContentEntity content = contentService.getById(contentVO.getContentId());
public void fillRealData(TaskObjectProjectContentVO contentVO, Map<Long,ContentEntity> contentMap) {
if(Func.isNotEmpty(contentVO.getContentId()) && contentMap!=null) {
// ContentEntity content = contentService.getById(contentVO.getContentId());
ContentEntity content=contentMap.get(contentVO.getContentId());
// 若内容中不存在模型的属性标识 则不获取实时数据
if(Func.isNotEmpty(content.getAttrSignage()) && Func.isNotEmpty(contentVO.getEmCode())) {
RealDataSearchPO po = new RealDataSearchPO();

51
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskObjectServiceImpl.java

@ -8,7 +8,11 @@ import com.hnac.hzinfo.inspect.ai.entity.RobotTaskEntity;
import com.hnac.hzinfo.inspect.ai.mapper.RobotTaskMapper;
import com.hnac.hzinfo.inspect.ai.service.ICameraInfoService;
import com.hnac.hzinfo.inspect.ai.service.IRobotTaskService;
import com.hnac.hzinfo.inspect.areamonthly.vo.TaskObjectProjectContentVO;
import com.hnac.hzinfo.inspect.areamonthly.vo.TaskObjectProjectVO;
import com.hnac.hzinfo.inspect.obj.entity.ContentEntity;
import com.hnac.hzinfo.inspect.obj.entity.ProjectEntity;
import com.hnac.hzinfo.inspect.obj.services.ContentService;
import com.hnac.hzinfo.inspect.obj.services.ProjectService;
import com.hnac.hzinfo.inspect.task.entity.TaskObjectEntity;
import com.hnac.hzinfo.inspect.task.entity.TaskObjectProjectEntity;
@ -25,8 +29,11 @@ import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@ -43,6 +50,7 @@ public class TaskObjectServiceImpl extends BaseServiceImpl<TaskObjectMapper, Tas
private final ITaskObjectProjectService taskObjectProjectService;
private final RobotTaskMapper robotTaskMapper;
private final ICameraInfoService cameraInfoService;
private final ContentService contentService;
@Override
public List<TaskObjectEntity> getTaskObjectList(TaskObjectEntity taskObjectEntity) {
@ -52,22 +60,61 @@ public class TaskObjectServiceImpl extends BaseServiceImpl<TaskObjectMapper, Tas
@Override
public List<TaskObjectVO> getTaskObjectsDetail(TaskObjectEntity to){
List<TaskObjectVO> taskObjectVOList = this.baseMapper.getTaskObjectsDetail(to);
List<List<TaskObjectProjectVO>> projectVOList=taskObjectVOList.stream().map(TaskObjectVO::getProjects).collect(Collectors.toList());
//获取项目中的信息
Set<Long> projectIds=new HashSet<>();
Set<Long> contentIds=new HashSet<>();
for(List<TaskObjectProjectVO> list:projectVOList){
for(TaskObjectProjectVO vo:list){
projectIds.add(vo.getProjectId());
if(vo.getContents()!=null && !vo.getContents().isEmpty()) {
for (TaskObjectProjectContentVO contentVO : vo.getContents()) {
contentIds.add(contentVO.getContentId());
}
}
}
}
LambdaQueryWrapper<ProjectEntity> wrapper=new LambdaQueryWrapper<>();
wrapper.in(ProjectEntity::getId,projectIds);
List<ProjectEntity> projects = projectService.list(wrapper);
//获取任务中的所有内容
Map<Long, ContentEntity> contentMap;
LambdaQueryWrapper<ContentEntity> wrapper1=new LambdaQueryWrapper<>();
if(!contentIds.isEmpty()) {
wrapper1.in(ContentEntity::getId, contentIds);
List<ContentEntity> contentEntityList=contentService.list(wrapper1);
contentMap = contentEntityList.stream().collect(Collectors.toMap(ContentEntity::getId, Function.identity()));
} else {
contentMap = null;
}
if(CollectionUtil.isNotEmpty(taskObjectVOList)) {
taskObjectVOList.stream()
.filter(taskObjectVO -> CollectionUtil.isNotEmpty(taskObjectVO.getProjects()))
.flatMap(taskObjectVO -> taskObjectVO.getProjects().stream())
.filter(taskObjectVO -> Func.isNotEmpty(taskObjectVO.getProjectId()) && CollectionUtil.isNotEmpty(taskObjectVO.getContents()))
.flatMap(project -> {
ProjectEntity projectEntity = projectService.getById(project.getProjectId());
ProjectEntity projectEntity=getProjectEntity(projects,project.getProjectId());
if(Func.isEmpty(projectEntity) && Func.isNotEmpty(projectEntity.getEmCode())) {
return null;
}
return project.getContents().stream().peek(contentVO -> contentVO.setEmCode(projectEntity.getEmCode()));
}).filter(Func::isNotEmpty).forEach(contentVO -> taskContentService.fillRealData(contentVO));
}).filter(Func::isNotEmpty).forEach(contentVO -> taskContentService.fillRealData(contentVO,contentMap));
}
return taskObjectVOList;
}
private ProjectEntity getProjectEntity(List<ProjectEntity> projects,Long projectId){
if(projects!=null && !projects.isEmpty()){
for(ProjectEntity entity:projects){
if(entity.getId().equals(projectId)){
return entity;
}
}
}
return null;
}
@Override
public List<TaskObjectOfflineVO> getExObjectData(List<Long> taskIds) {
return this.baseMapper.getExObjectData(taskIds);

13
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/service/impl/TaskServiceImpl.java

@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.hnac.hzims.common.utils.Condition;
import com.hnac.hzims.safeproduct.Constants;
import com.hnac.hzims.safeproduct.entity.DangerSourceEntity;
import com.hnac.hzims.safeproduct.entity.ImsMonCameraInfoEntity;
import com.hnac.hzims.safeproduct.feign.IImsMonCameraInfoClient;
import com.hnac.hzims.vo.SafeCheckStatisticVO;
@ -511,8 +512,11 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, TaskEntity> imp
TaskObjectEntity toQuery = new TaskObjectEntity();
toQuery.setTaskId(id);
List<TaskObjectVO> result = taskObjectService.getTaskObjectsDetail(toQuery);
List<Long> objectIds=result.stream().map(TaskObjectVO::getObjId).collect(Collectors.toList());
Map<Long,List<DangerSourceEntity>> listMap=objectDangerService.getDangerDetail(objectIds);
result.forEach(vo -> {
vo.setDangers(objectDangerService.getDangerDetailByObjectId(vo.getObjId()));
vo.setDangers(listMap.get(vo.getObjId()));
vo.setOrder(routMap.get(vo.getObjId()));
log.info("---routMap:{};objId:{}---", JSONObject.toJSONString(routMap), vo.getObjId());
});
@ -614,6 +618,13 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, TaskEntity> imp
return re;
}
@Override
public List<TaskVo> getDeptTaskList(IPage<TaskVo> page, TaskListQuery task) {
List<TaskVo> re = this.baseMapper.getDeptTaskList(page, task);
setVoInfo(re);
return re;
}
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean cancelStart(Long taskId) {

1
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/dto/HisDataResultDTO.java

@ -1,6 +1,5 @@
package com.hnac.hzims.message_alarm.dto;
import com.hnac.hzims.operational.huosan.vo.HouSanDeviceVO;
import lombok.Data;
import java.util.List;

7
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mapper/PlanFlowResultInfoMapper.java

@ -0,0 +1,7 @@
package com.hnac.hzims.message_alarm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.message_alarm.entity.PlanFlowResultInfo;
public interface PlanFlowResultInfoMapper extends BaseMapper<PlanFlowResultInfo> {
}

4
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/mapper/PlanFlowResultInfoMapper.xml

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

7
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/IPlanFlowResultInfoService.java

@ -0,0 +1,7 @@
package com.hnac.hzims.message_alarm.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.message_alarm.entity.PlanFlowResultInfo;
public interface IPlanFlowResultInfoService extends IService<PlanFlowResultInfo> {
}

8
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/MessageWaterLevelServiceImpl.java

@ -125,11 +125,13 @@ public class MessageWaterLevelServiceImpl implements IMessageWaterLevelService {
MessageWaterDispatchVo buildParam(PlanConfigInfo config, List<PlanResultInfo> list) {
MessageWaterDispatchVo req = new MessageWaterDispatchVo();
if (!CollectionUtils.isEmpty(list)) {
List<BigDecimal> qIn=list.stream().map(PlanResultInfo::getIncomeFall).collect(Collectors.toList());
//String stcd = list.get(0).getStcd();
String stcd = config.getStcd();
req.setM(list.size() - 1);
// 来水流量
req.setQIn(list.stream().map(PlanResultInfo::getIncomeFall).collect(Collectors.toList()));
req.setQIn(qIn);
// 查询库容曲线 并转换为WaterStorageVo
List<StZvarlB> infos = baseInfoClient.getStZvarlBs(stcd).getData();
// 拿到其中两个属性转为 double[][]
@ -219,7 +221,7 @@ public class MessageWaterLevelServiceImpl implements IMessageWaterLevelService {
}
String waterLeve = JSONObject.parseObject(data).getString("Z");
List<Double> waterLeveList = JSONObject.parseArray(waterLeve, Double.class);
List<BigDecimal> waterLeveList = JSONObject.parseArray(waterLeve, BigDecimal.class);
// i = 1 跳过第一个
for (int i = 0; i < waterLeveList.size(); i++) {
if (list.size() - 1 < i) {
@ -230,7 +232,7 @@ public class MessageWaterLevelServiceImpl implements IMessageWaterLevelService {
}
String powerFlow = JSONObject.parseObject(data).getString("S");
List<Double> powerFlowList = JSONObject.parseArray(powerFlow, Double.class);
List<BigDecimal> powerFlowList = JSONObject.parseArray(powerFlow, BigDecimal.class);
// i = 1 跳过第一个
for (int i = 0; i < powerFlowList.size(); i++) {
if (list.size() - 1 < i) {

11
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/PlanFlowResultInfoServiceImpl.java

@ -0,0 +1,11 @@
package com.hnac.hzims.message_alarm.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.message_alarm.entity.PlanFlowResultInfo;
import com.hnac.hzims.message_alarm.mapper.PlanFlowResultInfoMapper;
import com.hnac.hzims.message_alarm.service.IPlanFlowResultInfoService;
import org.springframework.stereotype.Service;
@Service
public class PlanFlowResultInfoServiceImpl extends ServiceImpl<PlanFlowResultInfoMapper, PlanFlowResultInfo> implements IPlanFlowResultInfoService {
}

185
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/service/impl/PlanInfoServiceImpl.java

@ -15,10 +15,7 @@ import com.hnac.hzims.hzimsweather.feign.IHeWeatherWeatherClient;
import com.hnac.hzims.hzimsweather.response.weather.HeWeatherWeatherHourlyResponse;
import com.hnac.hzims.message_alarm.constants.AlarmConstants;
import com.hnac.hzims.message_alarm.dto.*;
import com.hnac.hzims.message_alarm.entity.PlanConfigInfo;
import com.hnac.hzims.message_alarm.entity.PlanInfo;
import com.hnac.hzims.message_alarm.entity.PlanParamInfo;
import com.hnac.hzims.message_alarm.entity.PlanResultInfo;
import com.hnac.hzims.message_alarm.entity.*;
import com.hnac.hzims.message_alarm.mapper.PlanInfoMapper;
import com.hnac.hzims.message_alarm.service.*;
import com.hnac.hzims.message_alarm.util.HttpClientUtils;
@ -72,6 +69,9 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
IPlanResultInfoService planResultInfoService;
@Autowired
IPlanFlowResultInfoService planFlowResultInfoService;
@Autowired
IBaseInfoClient baseInfoClient;
@Autowired
@ -176,12 +176,45 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
//将预报计算结果返回 后续作为调度计算的入参使用
result.setPlanResultInfos(planResultInfos);
Map<String,Map<String, Double>> dealResult=dealResult(config,planInfo,calResults);
dealReportResult(result.getReport(),dealResult);
}
}
log.info("===预报干预出参planResultInfos====:{}", result.getPlanResultInfos());
return result;
}
private void dealReportResult(List<ReportVo> report,Map<String,Map<String, Double>> map){
log.info("===dealReportResult====report:{}", report);
Map<String, Double> mnllMap=map.get("mnllMap");
log.info("===dealReportResult====mnllMap:{}", mnllMap);
Map<String, Double> ftrkMap=map.get("ftrkMap");
log.info("===dealReportResult====ftrkMap:{}", ftrkMap);
for(ReportVo vo:report){
String key=vo.getTime()+":00";
log.info("===dealReportResult====key:{}", key);
// Map<String, Double> jlsMap=map.get("jlsMap");
if(mnllMap!=null) {
vo.setSimulatedFlow(mnllMap.get(key) != null ? String.valueOf(mnllMap.get(key)) : "-");
}
// if(jlsMap!=null) {
// vo.setRunoffDepth(jlsMap.get(key) != null ? String.valueOf(jlsMap.get(key)) : "-");
// }
if(ftrkMap!=null) {
vo.setReverseFlow(ftrkMap.get(key) != null ? String.valueOf(ftrkMap.get(key)) : "-");
}
}
}
private ForecastVo forecastByHuman(Long id) {
ForecastVo forecastVo = new ForecastVo();
IncomingWaterForecastVo incomingWaterForecastVo = new IncomingWaterForecastVo();
@ -218,7 +251,9 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
ZoneId zoneId = ZoneId.systemDefault();
List<PlanResultInfo> planResultInfos = planResultInfoService.list(new QueryWrapper<PlanResultInfo>().eq("plan_id", id).orderByAsc("time"));
log.info("==预报方案结果==:{}", planResultInfos);
this.getIncomingWaterForecast(incomingWaterForecastVo, planParamInfo.getStcd(), Date.from(startTime.atZone(zoneId).toInstant()), Date.from(endTime.atZone(zoneId).toInstant()), planResultInfos, BigDecimal.valueOf(planParamInfo.getSt()), formatter,reportVoList,indexMap);
this.getIncomingWaterForecast(incomingWaterForecastVo, planParamInfo.getStcd(),
Date.from(startTime.atZone(zoneId).toInstant()), Date.from(endTime.atZone(zoneId).toInstant()),
planResultInfos, BigDecimal.valueOf(planParamInfo.getSt()), formatter,reportVoList,indexMap);
forecastVo.setIncomingWaterForecastVo(incomingWaterForecastVo);
log.info("==预报方案reportVoList==:{}", reportVoList);
forecastVo.setReport(reportVoList);
@ -397,7 +432,7 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
forecastDataVo.setRz(planResultInfo.getWaterLevel() != null ? String.valueOf(planResultInfo.getWaterLevel()) : "-");
forecastDataVo.setDrp(planResultInfo.getRainFall() != null ? String.valueOf(planResultInfo.getRainFall()) : "-");
forecastDataVo.setInFlow(planResultInfo.getIncomeFall() != null ? String.valueOf(planResultInfo.getIncomeFall()) : "-");
forecastDataVo.setOutFlow(planResultInfo.getPowerFlow() != null ? st.add(BigDecimal.valueOf(planResultInfo.getPowerFlow())).toString() : "-");
forecastDataVo.setOutFlow(planResultInfo.getPowerFlow() != null ? st.add(planResultInfo.getPowerFlow()).toString() : "-");
forecastDataVoList.add(forecastDataVo);
TimeValueVo valueVo = new TimeValueVo();
@ -486,9 +521,11 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
log.info(config.getStnm()+"==获取历史负荷数据==:{}",load);
log.info(config.getStnm()+"==获取负荷和数据==:{}",load1);
Map<String, String> drpMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(drpsignageList)) {
for (Map<String, String> map : drpsignageList) {
drpMap.put(map.get("time"), map.get("drp"));
}
}
log.info(config.getStnm()+"==获取历史雨量数据Map==:{}",drpMap);
Map<String, String> loadMap = new HashMap<>();
if (CollectionUtils.isNotEmpty(load1)) {
@ -498,13 +535,13 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
List<HisDataResultDTO> dtoList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(rzsignageList)) {
Map<String, String> finalLoadMap = loadMap;
rzsignageList.stream().forEach(list->{
rzsignageList.stream().forEach(item->{
HisDataResultDTO dto = new HisDataResultDTO();
String time = list.get("time");
String time = item.get("time");
//时间
dto.setTime(time);
//水位
dto.setRz(list.get("rz"));
dto.setRz(item.get("rz"));
//雨量
dto.setDrp(drpMap.get(time));
//负荷
@ -618,8 +655,8 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
planResultInfo.setPlanId(planInfo.getId());
planResultInfo.setStcd(stcd);
planResultInfo.setTime(LocalDateTime.parse(tm, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
planResultInfo.setRainFall(entry.getValue());
planResultInfo.setIncomeFall(ybllMap.get(tm));
planResultInfo.setRainFall(new BigDecimal(entry.getValue().toString()));
planResultInfo.setIncomeFall(new BigDecimal(ybllMap.get(tm).toString()));
planResultInfos.add(planResultInfo);
}
}
@ -628,6 +665,79 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
planResultInfoService.saveBatch(planResultInfos);
}
private Map<String,Map<String, Double>> dealResult(PlanConfigInfo config,PlanInfo planInfo,List<CalResultDTO> calResults) {
log.info("====dealResult===");
List<PlanFlowResultInfo> planFlowResultInfos=new ArrayList<>();
Map<String,Map<String, Double>> res=new HashMap<>();
//获取发电调度结果
for (CalResultDTO calResult : calResults) {
String forecastStationName = calResult.getForecastStationName();
String stnm = config.getStnm();
String stcd = config.getStcd();
if (stnm.equals(forecastStationName)) {
RsvrResultDTO rsvrResult = calResult.getRsvrResult();
ForecastCalResultDTO forecastCalResult = rsvrResult.getForecastCalResult();
List<ProcessValueDTO> processValues = forecastCalResult.getProcessValues();
if (CollectionUtils.isNotEmpty(processValues)) {
//模拟流量Map
Map<String, Double> mnllMap = new HashMap<>();
//反推入库Map
Map<String, Double> ftrkMap = new HashMap<>();
//径流深Map
// Map<String, Double> jlsMap = new HashMap<>();
for (ProcessValueDTO processValue : processValues) {
String valueName = processValue.getValueName();
List<ValueDataDTO> valueDatas = processValue.getValueDatas();
if ("反推入库".equals(valueName)) {
for(ValueDataDTO dto:valueDatas){
ftrkMap.put(dto.getTm(),dto.getValue());
}
}
if ("模拟流量".equals(valueName)) {
for(ValueDataDTO dto:valueDatas){
mnllMap.put(dto.getTm(),dto.getValue());
}
}
// if ("径流深".equals(valueName)) {
// for(ValueDataDTO dto:valueDatas){
// jlsMap.put(dto.getTm(),dto.getValue());
// }
// }
}
log.info("====dealResult===mnllMap:{}",mnllMap);
res.put("mnllMap",mnllMap);
// res.put("jlsMap",jlsMap);
log.info("====dealResult===ftrkMap:{}",ftrkMap);
res.put("ftrkMap",ftrkMap);
for (Map.Entry<String, Double> entry : mnllMap.entrySet()) {
String tm = entry.getKey();
PlanFlowResultInfo planResultInfo = new PlanFlowResultInfo();
planResultInfo.setPlanId(planInfo.getId());
planResultInfo.setStcd(stcd);
planResultInfo.setTime(LocalDateTime.parse(tm, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
planResultInfo.setSimulatedFlow(new BigDecimal(entry.getValue().toString()));
planResultInfo.setReverseFlow(new BigDecimal(ftrkMap.get(tm).toString()));
planFlowResultInfos.add(planResultInfo);
}
}
}
}
//保存 反推入库 模拟流量
if(planFlowResultInfos!=null && !planFlowResultInfos.isEmpty()) {
planFlowResultInfoService.saveBatch(planFlowResultInfos);
}
return res;
}
private PlanInfo savePlanInfo(PlanConfigInfo config) {
LocalDateTime now = LocalDateTime.now();
String timeStr = now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
@ -728,19 +838,56 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
ZoneId zoneId = ZoneId.systemDefault();
List<PlanResultInfo> planResultInfos = planResultInfoService.list(new QueryWrapper<PlanResultInfo>().eq("plan_id", id).orderByAsc("time"));
this.getIncomingWaterForecast(incomingWaterForecastVo,planParamInfo.getStcd(),Date.from(startTime.atZone(zoneId).toInstant()),Date.from(endTime.atZone(zoneId).toInstant()),planResultInfos,BigDecimal.valueOf(planParamInfo.getSt()),formatter,reportVoList,indexMap);
this.getIncomingWaterForecast(incomingWaterForecastVo,planParamInfo.getStcd(),Date.from(startTime.atZone(zoneId).toInstant()),
Date.from(endTime.atZone(zoneId).toInstant()),
planResultInfos,BigDecimal.valueOf(planParamInfo.getSt()),formatter,reportVoList,indexMap);
PowerPlantOptimizationVo powerPlantOptimizationVo = new PowerPlantOptimizationVo();
powerPlantOptimizationVo.setStationCode(planParamInfo.getStationCode());
powerPlantOptimizationVo.setStationName(planParamInfo.getStationName());
this.getPowerPlantOptimization(powerPlantOptimizationVo,startTime.format(formatter),endTime.format(formatter),planResultInfos,reportVoList,indexMap);
this.getPowerPlantOptimization(powerPlantOptimizationVo,startTime.format(formatter),endTime.format(formatter),planResultInfos,
reportVoList,indexMap);
forecastVo.setIncomingWaterForecastVo(incomingWaterForecastVo);
forecastVo.setPowerPlantOptimizationVo(powerPlantOptimizationVo);
List<PlanFlowResultInfo> planFlowResultInfos = planFlowResultInfoService.list(new QueryWrapper<PlanFlowResultInfo>().eq("plan_id", id).orderByAsc("time"));
dealPlanFlow(planFlowResultInfos,reportVoList);
forecastVo.setReport(reportVoList);
return forecastVo;
}
private void getIncomingWaterForecast(IncomingWaterForecastVo vo, String stcd, Date startTime, Date endTime, List<PlanResultInfo> planResultInfos, BigDecimal st, DateTimeFormatter formatter,List<ReportVo> reportVoList,Map<String,Integer> indexMap){
private void dealPlanFlow(List<PlanFlowResultInfo> planFlowResultInfos,List<ReportVo> reportVoList){
if(planFlowResultInfos!=null && !planFlowResultInfos.isEmpty()) {
for (ReportVo vo : reportVoList) {
String time = vo.getTime();
PlanFlowResultInfo info = getPlanFlowResultInfoByTime(time, planFlowResultInfos);
if (info != null) {
String reverseFlow = info.getReverseFlow() != null ? String.valueOf(info.getReverseFlow()) : "-";
String simulatedFlow = info.getSimulatedFlow() != null ? String.valueOf(info.getSimulatedFlow()) : "-";
vo.setSimulatedFlow(simulatedFlow);
vo.setReverseFlow(reverseFlow);
}
}
}
}
private PlanFlowResultInfo getPlanFlowResultInfoByTime(String time,List<PlanFlowResultInfo> planFlowResultInfos){
DateTimeFormatter df=DateTimeFormatter.ofPattern("yyyy-MM-dd HH");
for(PlanFlowResultInfo info:planFlowResultInfos){
LocalDateTime dateTime=info.getTime();
if(time.equals(df.format(dateTime))){
return info;
}
}
return null;
}
private void getIncomingWaterForecast(IncomingWaterForecastVo vo, String stcd, Date startTime,
Date endTime, List<PlanResultInfo> planResultInfos, BigDecimal st,
DateTimeFormatter formatter,List<ReportVo> reportVoList,
Map<String,Integer> indexMap){
R<List<Map<String, String>>> rz = null;
if (gbyStcd.equals(stcd)) {
rz = baseInfoClient.getHistoryDataBySignage(gbyStcdZc, startTime, endTime, "hour", "rz");
@ -773,7 +920,7 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
log.info("{}==发电流量==:{}",stcd,planResultInfo.getPowerFlow());
log.info("{}==生态流量==:{}",stcd,st);
forecastDataVo.setInFlow(planResultInfo.getIncomeFall()!=null?String.valueOf(planResultInfo.getIncomeFall()):"-");
forecastDataVo.setOutFlow(planResultInfo.getPowerFlow()!=null?st.add(BigDecimal.valueOf(planResultInfo.getPowerFlow())).toString():"-");
forecastDataVo.setOutFlow(planResultInfo.getPowerFlow()!=null?st.add(planResultInfo.getPowerFlow()).toString():"-");
log.info("{}==预报入库流量==:{}",stcd,forecastDataVo.getInFlow());
log.info("{}==预报入库流量==:{}",stcd,forecastDataVo.getOutFlow());
forecastDataVoList.add(forecastDataVo);
@ -781,7 +928,8 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
vo.setPowerTotal(String.format("%.3f", sum));
vo.setStMaxPowerTime(maxPowerTime.getTime().format(formatter));
vo.setStMaxPower(maxPowerTime.getUnitLoad());
this.getReport(rzsignageList,drpsignageList,forecastDataVoList,null,null,reportVoList,indexMap);
this.getReport(rzsignageList,drpsignageList,forecastDataVoList,null,null,
reportVoList,indexMap);
}
}
@ -855,7 +1003,10 @@ public class PlanInfoServiceImpl extends ServiceImpl<PlanInfoMapper, PlanInfo> i
}
}
private void getReport(List<Map<String,String>> signageList,List<Map<String,String>> drpsignageList,List<ForecastDataVo> forecastRes, List<TimeValueVo> loadForecastRes,List<TimeValueVo> actualLoad,List<ReportVo> reportVoList,Map<String,Integer> indexMap){
private void getReport(List<Map<String,String>> signageList,List<Map<String,String>> drpsignageList,
List<ForecastDataVo> forecastRes, List<TimeValueVo> loadForecastRes,
List<TimeValueVo> actualLoad,List<ReportVo> reportVoList,
Map<String,Integer> indexMap){
log.info("==预报indexMap==:{}", indexMap);
if (signageList!=null&&!signageList.isEmpty()){
signageList.forEach(item->{

50
hzims-service/message-alarm-service/src/main/java/com/hnac/hzims/message_alarm/xxljob/ForecastOperationJob.java

@ -13,10 +13,7 @@ import com.hnac.hzims.common.logs.utils.StringUtils;
import com.hnac.hzims.equipment.vo.EminfoAndEmParamVo;
import com.hnac.hzims.message_alarm.constants.AlarmConstants;
import com.hnac.hzims.message_alarm.dto.*;
import com.hnac.hzims.message_alarm.entity.PlanConfigInfo;
import com.hnac.hzims.message_alarm.entity.PlanInfo;
import com.hnac.hzims.message_alarm.entity.PlanParamInfo;
import com.hnac.hzims.message_alarm.entity.PlanResultInfo;
import com.hnac.hzims.message_alarm.entity.*;
import com.hnac.hzims.message_alarm.service.*;
import com.hnac.hzims.message_alarm.util.HttpClientUtils;
import com.hnac.hzims.message_alarm.util.pojo.HttpResponse;
@ -63,6 +60,9 @@ public class ForecastOperationJob {
IPlanResultInfoService planResultInfoService;
@Autowired
IPlanFlowResultInfoService planFlowResultInfoService;
@Autowired
IBaseInfoClient baseInfoClient;
@Autowired
@ -189,6 +189,7 @@ public class ForecastOperationJob {
private MessageWaterSuggestVo savePlanResultInfo(PlanConfigInfo config, PlanInfo planInfo, List<PlanResultInfo> planResultInfos, List<CalResultDTO> calResults) {
//获取发电调度结果
List<PlanFlowResultInfo> planFlowResultInfos=new ArrayList<>();
for (CalResultDTO calResult : calResults) {
String forecastStationName = calResult.getForecastStationName();
String stnm = config.getStnm();
@ -202,6 +203,11 @@ public class ForecastOperationJob {
Map<String, Double> ybylMap = null;
//预报流量Map
Map<String, Double> ybllMap = null;
//模拟流量Map
Map<String, Double> mnllMap = new LinkedHashMap<>();
//反推入库Map
Map<String, Double> ftrkMap = new LinkedHashMap<>();
for (ProcessValueDTO processValue : processValues) {
String valueName = processValue.getValueName();
List<ValueDataDTO> valueDatas = processValue.getValueDatas();
@ -211,6 +217,16 @@ public class ForecastOperationJob {
if ("预报流量".equals(valueName)) {
ybllMap = valueDatas.stream().collect(Collectors.toMap(ValueDataDTO::getTm, ValueDataDTO::getValue));
}
if ("反推入库".equals(valueName)) {
for(ValueDataDTO dto:valueDatas){
ftrkMap.put(dto.getTm(),dto.getValue());
}
}
if ("模拟流量".equals(valueName)) {
for(ValueDataDTO dto:valueDatas){
mnllMap.put(dto.getTm(),dto.getValue());
}
}
}
logger.info("====预报雨量Map=====:{}", ybylMap);
logger.info("====预报流量Map=====:{}", ybllMap);
@ -220,15 +236,33 @@ public class ForecastOperationJob {
planResultInfo.setPlanId(planInfo.getId());
planResultInfo.setStcd(stcd);
planResultInfo.setTime(LocalDateTime.parse(tm, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
planResultInfo.setRainFall(entry.getValue());
planResultInfo.setIncomeFall(ybllMap.get(tm));
planResultInfo.setRainFall(new BigDecimal(entry.getValue().toString()));
planResultInfo.setIncomeFall(new BigDecimal(ybllMap.get(tm).toString()));
planResultInfos.add(planResultInfo);
}
for (Map.Entry<String, Double> entry : mnllMap.entrySet()) {
String tm = entry.getKey();
PlanFlowResultInfo planResultInfo = new PlanFlowResultInfo();
planResultInfo.setPlanId(planInfo.getId());
planResultInfo.setStcd(stcd);
planResultInfo.setTime(LocalDateTime.parse(tm, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
planResultInfo.setSimulatedFlow(new BigDecimal(entry.getValue().toString()));
planResultInfo.setReverseFlow(new BigDecimal(ftrkMap.get(tm).toString()));
planFlowResultInfos.add(planResultInfo);
}
}
}
}
MessageWaterSuggestVo comeWaterInfo = messageWaterLevelService.getComeWaterInfo(config,planResultInfos);
planResultInfoService.saveBatch(comeWaterInfo.getList());
//保存 反推入库 模拟流量
if(planFlowResultInfos!=null && !planFlowResultInfos.isEmpty()) {
planFlowResultInfoService.saveBatch(planFlowResultInfos);
}
return comeWaterInfo;
}
@ -252,13 +286,13 @@ public class ForecastOperationJob {
Double ySt = getRealUseWater(config,powerList, gbyRzList);
logger.info(stnm + "====ySt=====:{}", ySt);
//将高板岩五天的数据按照时间排序
List<Double> gbyFiveDayAll = planResultInfos.stream().filter(planResultInfo -> stcd.equals(planResultInfo.getStcd())).sorted(Comparator.comparing(PlanResultInfo::getTime)).map(PlanResultInfo::getIncomeFall).collect(Collectors.toList());
List<BigDecimal> gbyFiveDayAll = planResultInfos.stream().filter(planResultInfo -> stcd.equals(planResultInfo.getStcd())).sorted(Comparator.comparing(PlanResultInfo::getTime)).map(PlanResultInfo::getIncomeFall).collect(Collectors.toList());
logger.info(stnm + "====gbyFiveDayAll=====:{}", gbyFiveDayAll);
//高板岩后五天来水量
List<Double> gbyFiveDay = new LinkedList<>();
BigDecimal count = new BigDecimal("0.0");
for (int i = 1; i <= gbyFiveDayAll.size(); i++) {
Double aDouble = gbyFiveDayAll.get(i - 1);
BigDecimal aDouble = gbyFiveDayAll.get(i - 1);
String s = String.valueOf(aDouble);
count = count.add(new BigDecimal(String.valueOf(s)));
if (i % 24 == 0) {

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/alert/service/impl/HistoryAbnormalAlarmServiceImpl.java

@ -65,7 +65,7 @@ public class HistoryAbnormalAlarmServiceImpl extends BaseServiceImpl<HistoryAbno
private final ISoeClient alarmClient;
@Value("${hzims.operation.alarm.types}")
private String types;
String types;
/**
* 查询单条历史告警

9
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyMainController.java

@ -12,6 +12,7 @@ import com.hnac.hzims.operational.duty.service.IImsDutyMainService;
import com.hnac.hzims.operational.duty.utils.ExcelMergeHandler;
import com.hnac.hzims.operational.duty.utils.ExcelTool;
import com.hnac.hzims.operational.duty.vo.ChangeDutyMainVo;
import com.hnac.hzims.operational.duty.vo.ExchangeGroupLeader;
import com.hnac.hzims.operational.duty.vo.HomePageDutyMainInfoVo;
import com.hnac.hzims.operational.duty.vo.ImsSchedulingVo;
import io.swagger.annotations.Api;
@ -217,6 +218,14 @@ public class ImsDutyMainController extends BladeController {
return imsDutyMainService.updateDutyMainInfoVoById(changeDutyMainVo);
}
//班组长交换班
@PostMapping("/changDutyMainGroupLeader")
@ApiOperationSupport(order = 9)
@ApiOperation(value = "班组长交换班", notes = "")
public R changDutyMainGroupLeader(@RequestBody ExchangeGroupLeader changeGroupLeader) {
return imsDutyMainService.changDutyMainGroupLeader(changeGroupLeader);
}
@GetMapping("/exportDuty")
@ApiOperation(value = "导出排班计划")
public void exportTemplate(HttpServletResponse response, String time, Long deptId) throws IOException {

13
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/controller/ImsDutyRecController.java

@ -21,6 +21,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
@ -34,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.util.Map;
/**
@ -335,6 +337,17 @@ public class ImsDutyRecController extends BladeController {
return R.status(imsDutyRecService.changeShift(imsDutyRecDTO));
}
@PostMapping("/updateContent")
@ApiOperation(value = "修改补充说明", notes = "修改补充说明")
public R updateContent(@RequestBody Map<String,Object> param) {
if(param.get("id")==null){
return R.fail("值班id不能为空");
}
if(param.get("content")==null || "".equals(param.get("content").toString())){
return R.fail("补充说明不能为空");
}
return R.status(imsDutyRecService.updateContent(param));
}
}

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyMainService.java

@ -151,4 +151,6 @@ public interface IImsDutyMainService extends BaseService<ImsDutyMainEntity> {
R updateDutyMainInfoVoById(ChangeDutyMainVo changeDutyMainVo);
List<ImsDutyMainReportExcel> getExcelDutyData(Integer year, Integer month, Long deptId);
R changDutyMainGroupLeader(ExchangeGroupLeader changeGroupLeader);
}

3
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/IImsDutyRecService.java

@ -15,6 +15,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.flow.core.entity.BladeFlow;
import java.util.List;
import java.util.Map;
/**
* 服务类
@ -135,4 +136,6 @@ public interface IImsDutyRecService extends BaseService<ImsDutyRecEntity> {
* @return
*/
Boolean dealDutyRecFlow(ImsDutyRecDTO recDTO);
Boolean updateContent(Map<String,Object> param);
}

106
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyMainServiceImpl.java

@ -20,6 +20,7 @@ import com.hnac.hzims.operational.duty.vo.*;
import com.hnac.hzims.operational.main.vo.DutyPersonalReportVO;
import com.hnac.hzims.operational.report.vo.DutyReportVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil;
@ -1502,6 +1503,111 @@ public class ImsDutyMainServiceImpl extends BaseServiceImpl<ImsDutyMainMapper, I
return dutyMainReportExcelList;
}
@Override
public R changDutyMainGroupLeader(ExchangeGroupLeader changeGroupLeader) {
if(changeGroupLeader == null){
return R.fail("传入换班数据不能为空");
}
if(!changeGroupLeader.getFromDeptId().equals(changeGroupLeader.getToDeptId())){
return R.fail("不同机构间不能换班");
}
if(changeGroupLeader.getFromDate().compareTo(changeGroupLeader.getToDate())>0){
return R.fail("换班日期不能大于被换班日期");
}
if(changeGroupLeader.getFromDate().compareTo(changeGroupLeader.getToDate()) == 0
&& changeGroupLeader.getFromClassId().equals(changeGroupLeader.getToClassId())){
return R.fail("同一日期同一班次无须换班");
}
List<ImsDutyMainEntity> aDutyList = this.baseMapper.selectList(new LambdaQueryWrapper<ImsDutyMainEntity>() {{
eq(ImsDutyMainEntity::getDutyDate, changeGroupLeader.getFromDate());
eq(ImsDutyMainEntity::getCreateDept, changeGroupLeader.getFromDeptId());
eq(ImsDutyMainEntity::getClassId, changeGroupLeader.getFromClassId());
eq(ImsDutyMainEntity::getIsDeleted, 0);
}});
if(aDutyList== null|| aDutyList.isEmpty()){
return R.fail("换班人无排班计划");
}
List<ImsDutyMainEntity> bDutyList = this.baseMapper.selectList(new LambdaQueryWrapper<ImsDutyMainEntity>() {{
eq(ImsDutyMainEntity::getDutyDate, changeGroupLeader.getToDate());
eq(ImsDutyMainEntity::getCreateDept, changeGroupLeader.getToDeptId());
eq(ImsDutyMainEntity::getClassId, changeGroupLeader.getToClassId());
eq(ImsDutyMainEntity::getIsDeleted, 0);
}});
if(bDutyList== null|| bDutyList.isEmpty()){
return R.fail("被换班人无排班计划");
}
ImsDutyMainEntity aDutyMainEntity=aDutyList.get(0);
//查询换换班是否在值班
if(aDutyMainEntity.getStatus()!=0){
return R.fail("换班人待值班状态才能换班");
}
ImsDutyGroupEntity aGroupEntity = dutyGroupMapper.selectById(aDutyMainEntity.getDutyGroupId());
Long aManagerId=aGroupEntity.getManagerId();
List<ImsDutyMainPersonEntity> aPersonEntityList = imsDutyMainPersonMapper.selectList(new LambdaQueryWrapper<ImsDutyMainPersonEntity>() {{
eq(ImsDutyMainPersonEntity::getDutyMainId, aDutyMainEntity.getId());
eq(ImsDutyMainPersonEntity::getIsDeleted, 0);
}});
ImsDutyMainEntity bDutyMainEntity=bDutyList.get(0);
//查询换换班是否在值班
if(bDutyMainEntity.getStatus()!=0){
return R.fail("被换班人待值班状态才能换班");
}
ImsDutyGroupEntity bGroupEntity = dutyGroupMapper.selectById(bDutyMainEntity.getDutyGroupId());
Long bManagerId=bGroupEntity.getManagerId();
List<ImsDutyMainPersonEntity> bPersonEntityList = imsDutyMainPersonMapper.selectList(new LambdaQueryWrapper<ImsDutyMainPersonEntity>() {{
eq(ImsDutyMainPersonEntity::getDutyMainId, bDutyMainEntity.getId());
eq(ImsDutyMainPersonEntity::getIsDeleted, 0);
}});
String aPersonIds=aDutyMainEntity.getDutyPersonIds();
String bPersonIds=bDutyMainEntity.getDutyPersonIds();
//更新duty_main
ImsDutyMainEntity aEntity= SerializationUtils.clone(aDutyMainEntity);
ImsDutyMainEntity bEntity=SerializationUtils.clone(bDutyMainEntity);
aEntity.setDutyGroupId(bDutyMainEntity.getDutyGroupId());
aPersonIds=aPersonIds.replaceAll(aManagerId+"",bManagerId+"");
aEntity.setDutyPersonIds(aPersonIds);
this.baseMapper.updateById(aEntity);
bEntity.setDutyGroupId(aDutyMainEntity.getDutyGroupId());
bPersonIds=bPersonIds.replaceAll(bManagerId+"",aManagerId+"");
bEntity.setDutyPersonIds(bPersonIds);
this.baseMapper.updateById(bEntity);
//更新 duty_main_person
for(ImsDutyMainPersonEntity entity:aPersonEntityList){
if(entity.getDutyPerson().equals(aManagerId)){
entity.setDutyPerson(bManagerId);
}
// entity.setDutyGroupName(bGroupEntity.getGroupName());
entity.setDutyChargePerson(bManagerId);
}
iImsDutyMainPersonService.updateBatchById(aPersonEntityList);
for(ImsDutyMainPersonEntity entity:bPersonEntityList){
if(entity.getDutyPerson().equals(bManagerId)){
entity.setDutyPerson(aManagerId);
}
// entity.setDutyGroupName(aGroupEntity.getGroupName());
entity.setDutyChargePerson(aManagerId);
}
iImsDutyMainPersonService.updateBatchById(bPersonEntityList);
return R.success("班组长换班成功");
}
/**
* 获取上一班组

17
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java

@ -208,6 +208,16 @@ public class ImsDutyRecServiceImpl extends BaseServiceImpl<ImsDutyRecMapper, Ims
Assert.isTrue(Func.isNotEmpty(managerId),() -> {
throw new ServiceException("获取值班班组长失败!");
});
//防止多次创建巡检任务
LambdaQueryWrapper<ImsDutyRecEntity> wrapper=new LambdaQueryWrapper<>();
wrapper.eq(ImsDutyRecEntity::getDutyId,recDTO.getDutyId());
wrapper.isNotNull(ImsDutyRecEntity::getInspectTaskId);
List<ImsDutyRecEntity> list=this.list(wrapper);
if(list!=null && !list.isEmpty()){
throw new ServiceException("接班巡检任务已创建,不能多次提交!");
}
// 新建巡检计划并获取巡检任务Id
PlanVO planVO = new PlanVO();
planVO.setRouteId(recDTO.getRouteId());
@ -1402,6 +1412,13 @@ public class ImsDutyRecServiceImpl extends BaseServiceImpl<ImsDutyRecMapper, Ims
return true;
}
@Override
public Boolean updateContent(Map<String, Object> param) {
UpdateWrapper<ImsDutyRecEntity> wrapper=new UpdateWrapper<>();
wrapper.set("content",param.get("content")).eq("id",param.get("id"));
return this.update(wrapper);
}
/**
* 计算交接班状态
* @param duty 值班信息

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

@ -1699,6 +1699,8 @@ public class HydropowerServiceImpl implements HydropowerService {
// 班组负责人
String managerName = this.getManagerName(duty.getManagerId());
item.setTeamLeader(managerName);
String managerPhone = this.getManagerPhone(duty.getManagerId());
item.setTeamLeaderPhone(managerPhone);
// 班组成员
String classMember = this.getClassMemberName(duty.getDutyPersonIds(),duty.getManagerId());
item.setClassMember(classMember);
@ -1719,6 +1721,8 @@ public class HydropowerServiceImpl implements HydropowerService {
// 下一班组负责人
String managerName = this.getManagerName(nextDuty.getManagerId());
item.setNextTeamLeader(managerName);
String managerPhone = this.getManagerPhone(nextDuty.getManagerId());
item.setNextTeamLeaderPhone(managerPhone);
// 下一班组成员
String classMember = this.getClassMemberName(nextDuty.getDutyPersonIds(),nextDuty.getManagerId());
item.setNextClassMember(classMember);
@ -1857,6 +1861,22 @@ public class HydropowerServiceImpl implements HydropowerService {
}
/**
* 获取班组负责人电话号码
* @param managerId
* @return
*/
private String getManagerPhone(String managerId) {
if(StringUtil.isBlank(managerId)){
return "";
}
User user = UserCache.getUser(Long.valueOf(managerId));
if (ObjectUtil.isEmpty(user)) {
return "";
}
return user.getPhone();
}
/**
* 获取班组成员
* @param personIds
* @param managerId

6
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/vo/AppAreaDutyVo.java

@ -21,6 +21,9 @@ public class AppAreaDutyVo {
@ApiModelProperty("班组长")
private String teamLeader;
@ApiModelProperty("班组长电话")
private String teamLeaderPhone;
@ApiModelProperty("班成员")
private String classMember;
@ -33,6 +36,9 @@ public class AppAreaDutyVo {
@ApiModelProperty("下一班组长")
private String nextTeamLeader;
@ApiModelProperty("下一班组长电话")
private String nextTeamLeaderPhone;
@ApiModelProperty("下一班成员")
private String nextClassMember;

13
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/feign/DangerSourceClient.java

@ -46,6 +46,19 @@ public class DangerSourceClient implements IDangerSourceClient {
}
}
@Override
@GetMapping(LIST)
public List<DangerSourceEntity> list() {
List<DangerSourceEntity> resp = service.list();
//未查到数据返回空集合
if (CollectionUtils.isEmpty(resp)) {
return new ArrayList<>();
}
return resp;
}
@GetMapping(LIST_BY_TENANT_ID)
@Override
public List<SourceVO> listByTenantId(String tenantId) {

BIN
hzims-service/ticket/lib/spire.xls.free-3.9.1.jar

Binary file not shown.

2
hzims-service/ticket/pom.xml

@ -68,6 +68,8 @@
<groupId>e-iceblue</groupId>
<artifactId>spire.xls.free</artifactId>
<version>3.9.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/spire.xls.free-3.9.1.jar</systemPath>
</dependency>
<!--easypoi-->

4
hzims-service/ticket/src/main/java/com/hnac/hzims/ticket/standardTicket/service/impl/OperationTicketServiceImpl.java

@ -401,10 +401,10 @@ public class OperationTicketServiceImpl implements OperationTicketService {
result = "DZ";
break;
case "4":
result = type;
result = "KJ";
break;
case "5":
result = type;
result = "TJ";
break;
default:
result = "DZ";

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

@ -334,6 +334,9 @@ public class FirstWorkTicketServiceImpl extends BaseServiceImpl<WorkTicketInfoMa
@Override
public R<WorkTicketInfoVO> detail(Long id) {
WorkTicketInfoEntity entity = this.getById(id);
if(entity==null){
return R.fail("票据不存在");
}
WorkTicketInfoVO workTicketInfoVO = WorkTicketInfoWrapper.build().entityVO(entity);
//获取工作票安全措施列表

Loading…
Cancel
Save