Browse Source

Merge remote-tracking branch 'origin/master'

zhongwei
段飞宇 1 year ago
parent
commit
0a6c45a437
  1. 9
      hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/equipment/entity/EmInfoEntity.java
  2. 2
      hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/equipment/entity/EmTreeEntity.java
  3. 381
      hzims-service/assets/src/main/java/com/hnac/hzims/spare/aspect/LimitRemindAspect.java
  4. 1
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmDefinitionController.java
  5. 47
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java
  6. 2
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmInfoMapper.java
  7. 2
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmInfoMapper.xml
  8. 8
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java
  9. 2
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/vo/EmInfoContentVO.java
  10. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/DefectCheckServiceImpl.java
  11. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyMainMapper.xml

9
hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/equipment/entity/EmInfoEntity.java

@ -127,12 +127,17 @@ public class EmInfoEntity extends TenantEntity {
@JsonSerialize(nullsUsing = NullSerializer.class) @JsonSerialize(nullsUsing = NullSerializer.class)
private Long manager; private Long manager;
/** /**
* 设备等级01一类设备02二类设备03三类设备 * 设备类别01一类设备02二类设备03三类设备
*/ */
@ApiModelProperty(value = "设备等级(01:一类设备,02:二类设备,03:三类设备)") @ApiModelProperty(value = "设备类别(01:一类设备,02:二类设备,03:三类设备)")
@EnumValue(strValues = {"01", "02", "03"}, message = "值只能为01、02、03") @EnumValue(strValues = {"01", "02", "03"}, message = "值只能为01、02、03")
private String gradeCode; private String gradeCode;
/** /**
*设备等级0一级设备1二级设备2三级设备
*/
@ApiModelProperty(value = "设备等级(0:一级设备,1:二级设备,2:三级设备)")
private Integer emGrade;
/**
* 安装时间 * 安装时间
*/ */
@ApiModelProperty(value = "安装时间") @ApiModelProperty(value = "安装时间")

2
hzims-service-api/equipment-api/src/main/java/com/hnac/hzims/equipment/entity/EmTreeEntity.java

@ -51,7 +51,7 @@ public class EmTreeEntity extends TenantEntity {
@ApiModelProperty(value = "所属组织") @ApiModelProperty(value = "所属组织")
private Long refOreanization; private Long refOreanization;
@ApiModelProperty(value = "设备等级") @ApiModelProperty(value = "设备等级(0:一级设备,1:二级设备,2:三级设备)")
private Integer emGrade; private Integer emGrade;
@ApiModelProperty(value = "巡检标准") @ApiModelProperty(value = "巡检标准")

381
hzims-service/assets/src/main/java/com/hnac/hzims/spare/aspect/LimitRemindAspect.java

@ -1,13 +1,14 @@
package com.hnac.hzims.spare.aspect; package com.hnac.hzims.spare.aspect;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.hnac.hzims.message.MessageConstants; import com.hnac.hzims.message.MessageConstants;
import com.hnac.hzims.message.dto.AppPushDto; import com.hnac.hzims.message.dto.AppPushDto;
import com.hnac.hzims.message.dto.MessagePushRecordDto;
import com.hnac.hzims.message.dto.WsPushDto; import com.hnac.hzims.message.dto.WsPushDto;
import com.hnac.hzims.message.fegin.IMessageClient;
import com.hnac.hzims.message.fegin.IPushMsgClient; import com.hnac.hzims.message.fegin.IPushMsgClient;
import com.hnac.hzims.spare.entity.*; import com.hnac.hzims.spare.entity.*;
import com.hnac.hzims.spare.service.IWtSpBasicService; import com.hnac.hzims.spare.service.IWtSpBasicService;
@ -20,14 +21,16 @@ import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Pointcut;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil; import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil; import org.springblade.system.feign.ISysClient;
import org.springblade.system.user.cache.UserCache; import org.springblade.system.user.cache.UserCache;
import org.springblade.system.user.entity.User; import org.springblade.system.user.entity.User;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.concurrent.*; import java.util.concurrent.*;
@ -40,156 +43,236 @@ import java.util.concurrent.*;
@AllArgsConstructor @AllArgsConstructor
public class LimitRemindAspect { public class LimitRemindAspect {
private final IPushMsgClient pushMsgClient; private final IPushMsgClient pushMsgClient;
private final IWtSpWarehouseService wtSpWarehouseService; private final IWtSpWarehouseService wtSpWarehouseService;
private final IWtSpTotalService wtSpTotalService; private final IWtSpTotalService wtSpTotalService;
private final IWtSpBasicService wtSpBasicService; private final IWtSpBasicService wtSpBasicService;
private final ISysClient sysClient;
private final IMessageClient messageClient;
/** /**
* 以出入库保存方法为切点 处理预警信息暂未考虑台账上下限变化因素 * 以出入库保存方法为切点 处理预警信息暂未考虑台账上下限变化因素
*/ */
@Pointcut("execution(* com.hnac.hzims.spare.service.impl.SpWarehouseInServiceImpl.save(..)) " + @Pointcut("execution(* com.hnac.hzims.spare.service.impl.SpWarehouseInServiceImpl.save(..)) " +
"|| execution(* com.hnac.hzims.spare.service.impl.SpWarehouseOutServiceImpl.save(..))") "|| execution(* com.hnac.hzims.spare.service.impl.SpWarehouseOutServiceImpl.save(..))")
public void warnPointCut() { public void warnPointCut() {
} }
/*** /***
* 生成预警后进行消息提醒 * 生成预警后进行消息提醒
* @param point 连接点 * @param point 连接点
*/ */
@After("warnPointCut()") @After("warnPointCut()")
public void after(JoinPoint point) { public void after(JoinPoint point) {
Object[] args = point.getArgs(); Object[] args = point.getArgs();
if(args.length == 1 && (args[0] instanceof SpWarehouseInEntity || args[0] instanceof SpWarehouseOutEntity)){ if (args.length == 1 && (args[0] instanceof SpWarehouseInEntity || args[0] instanceof SpWarehouseOutEntity)) {
log.info("===进入库存预警消息推送==="); log.info("===进入库存预警消息推送===");
Field basicListField = null; Field basicListField = null;
Field warehouseIdField = null; Field warehouseIdField = null;
try { try {
basicListField = args[0].getClass().getDeclaredField("basicList"); basicListField = args[0].getClass().getDeclaredField("basicList");
warehouseIdField = args[0].getClass().getDeclaredField("storageRoom"); warehouseIdField = args[0].getClass().getDeclaredField("storageRoom");
basicListField.setAccessible(true); basicListField.setAccessible(true);
warehouseIdField.setAccessible(true); warehouseIdField.setAccessible(true);
Assert.notNull(basicListField,"获取basicList属性失败"); Assert.notNull(basicListField, "获取basicList属性失败");
Assert.notNull(warehouseIdField,"获取storageRoom属性失败"); Assert.notNull(warehouseIdField, "获取storageRoom属性失败");
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
List<SpRecordEntity> basicList = null; List<SpRecordEntity> basicList = null;
Long warehouseId = null; Long warehouseId = null;
try { try {
basicList = (List<SpRecordEntity>) basicListField.get(args[0]); basicList = (List<SpRecordEntity>) basicListField.get(args[0]);
warehouseId = (Long) warehouseIdField.get(args[0]); warehouseId = (Long) warehouseIdField.get(args[0]);
if(CollectionUtil.isNotEmpty(basicList) && ObjectUtil.isNotEmpty(warehouseId)){ if (CollectionUtil.isNotEmpty(basicList) && ObjectUtil.isNotEmpty(warehouseId)) {
this.pushWarehouseWarning(warehouseId,basicList); this.pushWarehouseWarningV2(warehouseId, basicList);
} }
} catch (IllegalAccessException e) { } catch (IllegalAccessException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
log.info("===库存预警消息推送结束==="); log.info("===库存预警消息推送结束===");
} }
/** /**
* 查询出入库备品备件是否存在告警信息并推送 * 查询出入库备品备件是否存在告警信息并推送
* @param spRecordEntityList 出入库备品备件列表 *
* @param warehouseId 仓库ID * @param spRecordEntityList 出入库备品备件列表
*/ * @param warehouseId 仓库ID
private void pushWarehouseWarning(Long warehouseId, List<SpRecordEntity> spRecordEntityList){ */
//开启线程池推送消息 final static ExecutorService executorService = new ThreadPoolExecutor(5, 5, 1, TimeUnit.SECONDS, new LinkedBlockingDeque<>());
ExecutorService executorService = new ThreadPoolExecutor(1,1,1, TimeUnit.SECONDS,new LinkedBlockingDeque<>());
executorService.execute(()-> spRecordEntityList.forEach(spRecordEntity -> {
//查询该仓库是否有备品备件超出上下限
WtSpWarehouseEntity wtSpWarehouseEntity = wtSpWarehouseService.selectById(warehouseId);
WtSpTotalEntity wtSpTotalEntity = wtSpTotalService.getOne(Wrappers.<WtSpTotalEntity>lambdaQuery()
.eq(WtSpTotalEntity::getSpBasicId,spRecordEntity.getSpBasicId())
.eq(WtSpTotalEntity::getWarehouseId,warehouseId)
.last("limit 1;")
);
WtSpBasicEntity basicEntity = wtSpBasicService.getById(spRecordEntity.getSpBasicId());
//超出上限/下限发送消息提醒
log.info("仓库id为:{},库存为:{},上限为:{},下限为:{}",warehouseId,wtSpTotalEntity.getStock(),basicEntity.getUpperLimit(),basicEntity.getLowerLimit());
if(wtSpTotalEntity.getStock() > basicEntity.getUpperLimit() || wtSpTotalEntity.getStock() < basicEntity.getLowerLimit()) {
User pusher = UserCache.getUser(wtSpWarehouseEntity.getManager());
if(ObjectUtil.isEmpty(pusher)){
return;
}
//完善推送信息
String alert;
if(wtSpTotalEntity.getStock() > basicEntity.getUpperLimit()) {
alert = String.format("%s内的(%s)已达到上限,目前仓库内的库存为:%s,上限值为:%s。请及时处理!",
wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getUpperLimit()
);
}
else {
alert = String.format("%s内的(%s)已达到下限,目前仓库内的库存为:%s,下限值为:%s。请及时处理!",
wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getLowerLimit()
);
}
//推送web消息
CompletableFuture.supplyAsync(()->{
this.warningPushWeb(alert,pusher);
return "推送成功";
});
//推送App消息
CompletableFuture.supplyAsync(()->{
this.warningPushApp(alert,pusher);
return "推送成功";
});
}
}));
executorService.shutdown();
}
/** private void pushWarehouseWarningV2(Long warehouseId, List<SpRecordEntity> spRecordEntityList) {
* 备品备件-预警app推送 //开启线程池推送消息
* @param alert 推送内容 executorService.execute(() -> spRecordEntityList.forEach(spRecordEntity -> {
* @param pusher 推送人 //查询该仓库是否有备品备件超出上下限
*/ WtSpWarehouseEntity wtSpWarehouseEntity = wtSpWarehouseService.selectById(warehouseId);
private void warningPushApp(String alert, User pusher) { WtSpTotalEntity wtSpTotalEntity = wtSpTotalService.getOne(Wrappers.<WtSpTotalEntity>lambdaQuery()
//app推送 .eq(WtSpTotalEntity::getSpBasicId, spRecordEntity.getSpBasicId())
AppPushDto appPushDto = new AppPushDto(); .eq(WtSpTotalEntity::getWarehouseId, warehouseId)
appPushDto.setBusinessClassify(MessageConstants.BusinessClassifyEnum.ASSETS.getKey()); .last("limit 1;")
appPushDto.setBusinessKey("assets-warning"); );
appPushDto.setIsAll(true); WtSpBasicEntity basicEntity = wtSpBasicService.getById(spRecordEntity.getSpBasicId());
appPushDto.setContent(alert); //超出上限/下限发送消息提醒
appPushDto.setSubject("库存预警"); log.info("仓库id为:{},库存为:{},上限为:{},下限为:{}", warehouseId, wtSpTotalEntity.getStock(), basicEntity.getUpperLimit(), basicEntity.getLowerLimit());
appPushDto.setTitle("库存预警"); if (wtSpTotalEntity.getStock() > basicEntity.getUpperLimit() || wtSpTotalEntity.getStock() < basicEntity.getLowerLimit()) {
appPushDto.setAudienceType(PushAudienceType.TAG); User pusher = UserCache.getUser(wtSpWarehouseEntity.getManager());
appPushDto.setTags(Lists.newArrayList(new String[]{pusher.getId().toString()})); if (ObjectUtil.isEmpty(pusher)) {
//FIXME 因feign接口请求头丢失 登录信息失效先启用未登陆方式 return;
appPushDto.setTenantId("200000"); }
appPushDto.setCreateUser(1380746947515691009L); //完善推送信息
appPushDto.setCreateDept(2000000101L); String alert;
appPushDto.setPushAlert(alert); if (wtSpTotalEntity.getStock() > basicEntity.getUpperLimit()) {
pushMsgClient.sendPush(appPushDto); alert = String.format("%s内的(%s)已达到上限,目前仓库内的库存为:%s,上限值为:%s。请及时处理!",
} wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getUpperLimit()
);
} else {
alert = String.format("%s内的(%s)已达到下限,目前仓库内的库存为:%s,下限值为:%s。请及时处理!",
wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getLowerLimit()
);
}
//推送消息
CompletableFuture.supplyAsync(() -> {
this.warningPush(alert, pusher,warehouseId);
return "推送成功";
});
}
}));
executorService.shutdown();
}
/** private void warningPush(String alert, User pusher,Long warehouseId) {
* 备品备件-预警web推送 MessagePushRecordDto message = new MessagePushRecordDto();
* @param alert 推送内容 message.setBusinessClassify("business");
* @param pusher 推送人 message.setBusinessKey(MessageConstants.BusinessClassifyEnum.ASSETS.getKey());
*/ message.setSubject(MessageConstants.BusinessClassifyEnum.ASSETS.getDescription());
private void warningPushWeb(String alert, User pusher) { message.setTaskId(warehouseId);
//web推送 message.setTenantId("200000");
WsPushDto wsPushDto = new WsPushDto(); message.setTypes(Arrays.asList(MessageConstants.APP_PUSH, MessageConstants.WS_PUSH));
wsPushDto.setBusinessClassify(MessageConstants.BusinessClassifyEnum.ASSETS.getKey()); message.setPushType(MessageConstants.IMMEDIATELY);
wsPushDto.setBusinessKey("assets-warning"); message.setContent(alert);
wsPushDto.setContent(alert); message.setDeptId(pusher.getCreateDept());
wsPushDto.setSubject("库存预警"); R<String> deptName = sysClient.getDeptName(pusher.getCreateDept());
wsPushDto.setSubject("备品备件预警信息"); if (deptName.isSuccess()) {
wsPushDto.setUserIdList(Lists.newArrayList(new String[]{pusher.getId().toString()})); message.setDeptName(deptName.getData());
wsPushDto.setText(alert); }
//FIXME 因feign接口请求头丢失 登录信息失效先启用未登陆方式 Long userId = pusher.getId();
wsPushDto.setTenantId("200000"); if (ObjectUtils.isEmpty(userId)) {
wsPushDto.setCreateUser(1380746947515691009L); log.error("推送人不能为空哦,{}", userId);
wsPushDto.setCreateDept(2000000101L); return;
pushMsgClient.sendWebsocket(wsPushDto); }
} message.setPusher(userId.toString());
message.setPusherName(pusher.getName());
message.setAccount(pusher.getAccount());
message.setCreateUser(userId);
messageClient.sendMessage(message);
}
//此接口已经弃用20230608
@Deprecated
private void pushWarehouseWarning(Long warehouseId, List<SpRecordEntity> spRecordEntityList) {
//开启线程池推送消息
executorService.execute(() -> spRecordEntityList.forEach(spRecordEntity -> {
//查询该仓库是否有备品备件超出上下限
WtSpWarehouseEntity wtSpWarehouseEntity = wtSpWarehouseService.selectById(warehouseId);
WtSpTotalEntity wtSpTotalEntity = wtSpTotalService.getOne(Wrappers.<WtSpTotalEntity>lambdaQuery()
.eq(WtSpTotalEntity::getSpBasicId, spRecordEntity.getSpBasicId())
.eq(WtSpTotalEntity::getWarehouseId, warehouseId)
.last("limit 1;")
);
WtSpBasicEntity basicEntity = wtSpBasicService.getById(spRecordEntity.getSpBasicId());
//超出上限/下限发送消息提醒
log.info("仓库id为:{},库存为:{},上限为:{},下限为:{}", warehouseId, wtSpTotalEntity.getStock(), basicEntity.getUpperLimit(), basicEntity.getLowerLimit());
if (wtSpTotalEntity.getStock() > basicEntity.getUpperLimit() || wtSpTotalEntity.getStock() < basicEntity.getLowerLimit()) {
User pusher = UserCache.getUser(wtSpWarehouseEntity.getManager());
if (ObjectUtil.isEmpty(pusher)) {
return;
}
//完善推送信息
String alert;
if (wtSpTotalEntity.getStock() > basicEntity.getUpperLimit()) {
alert = String.format("%s内的(%s)已达到上限,目前仓库内的库存为:%s,上限值为:%s。请及时处理!",
wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getUpperLimit()
);
} else {
alert = String.format("%s内的(%s)已达到下限,目前仓库内的库存为:%s,下限值为:%s。请及时处理!",
wtSpWarehouseEntity.getName(),
basicEntity.getName(),
wtSpTotalEntity.getStock(),
basicEntity.getLowerLimit()
);
}
//推送web消息
CompletableFuture.supplyAsync(() -> {
this.warningPushWeb(alert, pusher);
return "推送成功";
});
//推送App消息
CompletableFuture.supplyAsync(() -> {
this.warningPushApp(alert, pusher);
return "推送成功";
});
}
}));
executorService.shutdown();
}
/**
* 备品备件-预警app推送
*
* @param alert 推送内容
* @param pusher 推送人
*/
private void warningPushApp(String alert, User pusher) {
//app推送
AppPushDto appPushDto = new AppPushDto();
appPushDto.setBusinessClassify(MessageConstants.BusinessClassifyEnum.ASSETS.getKey());
appPushDto.setBusinessKey("assets-warning");
appPushDto.setIsAll(true);
appPushDto.setContent(alert);
appPushDto.setSubject("库存预警");
appPushDto.setTitle("库存预警");
appPushDto.setAudienceType(PushAudienceType.TAG);
appPushDto.setTags(Lists.newArrayList(new String[]{pusher.getId().toString()}));
//FIXME 因feign接口请求头丢失 登录信息失效先启用未登陆方式
appPushDto.setTenantId("200000");
appPushDto.setCreateUser(1380746947515691009L);
appPushDto.setCreateDept(2000000101L);
appPushDto.setPushAlert(alert);
pushMsgClient.sendPush(appPushDto);
}
/**
* 备品备件-预警web推送
*
* @param alert 推送内容
* @param pusher 推送人
*/
private void warningPushWeb(String alert, User pusher) {
//web推送
WsPushDto wsPushDto = new WsPushDto();
wsPushDto.setBusinessClassify(MessageConstants.BusinessClassifyEnum.ASSETS.getKey());
wsPushDto.setBusinessKey("assets-warning");
wsPushDto.setContent(alert);
wsPushDto.setSubject("库存预警");
wsPushDto.setSubject("备品备件预警信息");
wsPushDto.setUserIdList(Lists.newArrayList(new String[]{pusher.getId().toString()}));
wsPushDto.setText(alert);
//FIXME 因feign接口请求头丢失 登录信息失效先启用未登陆方式
wsPushDto.setTenantId("200000");
wsPushDto.setCreateUser(1380746947515691009L);
wsPushDto.setCreateDept(2000000101L);
pushMsgClient.sendWebsocket(wsPushDto);
}
} }

1
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmDefinitionController.java

@ -65,6 +65,7 @@ public class EmDefinitionController extends BladeController {
if (Func.isNotEmpty(emDefinition.getStatus())) { if (Func.isNotEmpty(emDefinition.getStatus())) {
wrapper.eq(EmDefinitionEntity::getStatus, emDefinition.getStatus()); wrapper.eq(EmDefinitionEntity::getStatus, emDefinition.getStatus());
} }
wrapper.orderByDesc(EmDefinitionEntity::getCreateTime);
IPage<EmDefinitionEntity> pages = emDefinitionService.page(Condition.getPage(query), wrapper); IPage<EmDefinitionEntity> pages = emDefinitionService.page(Condition.getPage(query), wrapper);
for (EmDefinitionEntity definition : pages.getRecords()) { for (EmDefinitionEntity definition : pages.getRecords()) {
User createUser = UserCache.getUser(definition.getCreateUser()); User createUser = UserCache.getUser(definition.getCreateUser());

47
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmInfoController.java

@ -9,6 +9,7 @@ import com.hnac.hzims.common.logs.enums.BusinessType;
import com.hnac.hzims.common.logs.enums.OperatorType; import com.hnac.hzims.common.logs.enums.OperatorType;
import com.hnac.hzims.equipment.dto.DeviceTreeDTO; import com.hnac.hzims.equipment.dto.DeviceTreeDTO;
import com.hnac.hzims.equipment.entity.EmInfoEntity; import com.hnac.hzims.equipment.entity.EmInfoEntity;
import com.hnac.hzims.equipment.entity.EmTreeEntity;
import com.hnac.hzims.equipment.service.IEmInfoService; import com.hnac.hzims.equipment.service.IEmInfoService;
import com.hnac.hzims.equipment.vo.EmInfoAddVo; import com.hnac.hzims.equipment.vo.EmInfoAddVo;
import com.hnac.hzims.equipment.vo.EmInfoContentVO; import com.hnac.hzims.equipment.vo.EmInfoContentVO;
@ -35,6 +36,7 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 设备控制器 * 设备控制器
@ -176,6 +178,51 @@ public class EmInfoController extends BladeController {
} }
/** /**
* 获取所有设备列表(树结构)
* @param refDept 站点机构
* @param name 设备名称
* @return
*/
@ApiLog
@RequestMapping(value = "/getEmInfoTreeList")
@ApiOperationSupport(order = 3)
@ApiOperation(value = "获取所有设备列表(树结构)", notes = "传入设备id")
public R<List<EmInfoEntity>> getEmInfoTreeList(Long refDept, String name) {
List<EmInfoEntity> resultList = new ArrayList<>();
LambdaQueryWrapper<EmInfoEntity> wrapper = new LambdaQueryWrapper<>();
if (Func.isNotEmpty(refDept)) {
wrapper.eq(EmInfoEntity::getDepartment, refDept);
}
if (Func.isNotEmpty(name)) {
wrapper.like(EmInfoEntity::getName, name);
}
List<EmInfoEntity> list = em_infoService.list(wrapper);
if (Func.isNotEmpty(name)) {
for (EmInfoEntity emInfo : list) {
LambdaQueryWrapper<EmInfoEntity> sonWrapper = new LambdaQueryWrapper<>();
sonWrapper.likeRight(EmInfoEntity::getPath, emInfo.getPath());
List<EmInfoEntity> sonList = em_infoService.list(sonWrapper);
// 把List结构数据转换成树结构
Map<Long, List<EmInfoEntity>> emInfoMap = sonList.stream().collect(Collectors.groupingBy(EmInfoEntity::getGpid));
sonList.forEach(emTree -> {
emTree.setInfoChildren(emInfoMap.get(emTree.getId()));
});
sonList = sonList.stream().filter(item -> item.getGpid().equals(emInfo.getGpid())).collect(Collectors.toList());
resultList.addAll(sonList);
}
} else {
// 把List结构数据转换成树结构
Map<Long, List<EmInfoEntity>> emInfoMap = list.stream().collect(Collectors.groupingBy(EmInfoEntity::getGpid));
list.forEach(emTree -> {
emTree.setInfoChildren(emInfoMap.get(emTree.getId()));
});
resultList = list.stream().filter(item -> item.getGpid().equals(0L)).collect(Collectors.toList());
}
return R.data(resultList);
}
/**
* 新增 * 新增
*/ */
@PostMapping("/save") @PostMapping("/save")

2
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmInfoMapper.java

@ -50,7 +50,7 @@ public interface EmInfoMapper extends UserDataScopeBaseMapper<EmInfoEntity> {
List<DeviceVO> listByTenantId(@Param("tenantId") String tenantId); List<DeviceVO> listByTenantId(@Param("tenantId") String tenantId);
Integer getMaxEmIndexByPid(@Param("pid") Long pid); Integer getMaxEmIndexByPid(@Param("department") Long department, @Param("emGrade") Integer emGrade);
List<SparePartVO> getSparePart(@Param("path") String path, @Param("startTime") String startTime, @Param("endTime") String endTime); List<SparePartVO> getSparePart(@Param("path") String path, @Param("startTime") String startTime, @Param("endTime") String endTime);
} }

2
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/mapper/EmInfoMapper.xml

@ -117,7 +117,7 @@
</select> </select>
<select id="getMaxEmIndexByPid" resultType="java.lang.Integer"> <select id="getMaxEmIndexByPid" resultType="java.lang.Integer">
select max(em_index) from hzims_em_info where GPID = #{pid} select max(em_index) from hzims_em_info where DEPARTMENT = #{department} and em_grade = #{emGrade}
</select> </select>
<select id="getSparePart" resultType="com.hnac.hzims.equipment.vo.SparePartVO"> <select id="getSparePart" resultType="com.hnac.hzims.equipment.vo.SparePartVO">

8
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/service/impl/EmInfoServiceImpl.java

@ -519,6 +519,7 @@ public class EmInfoServiceImpl extends BaseServiceImpl<EmInfoMapper, EmInfoEntit
@Override @Override
public List<EmInfoContentVO> getEmInfoContent(String emCode, ContentDTO dto) { public List<EmInfoContentVO> getEmInfoContent(String emCode, ContentDTO dto) {
EmInfoEntity emInfo = getEmInfoByEmCode(emCode);
List<EmInfoContentVO> emInfoContentList = new ArrayList<>(); List<EmInfoContentVO> emInfoContentList = new ArrayList<>();
ProjectContentRequest request = new ProjectContentRequest(); ProjectContentRequest request = new ProjectContentRequest();
request.setCurrent(1); request.setCurrent(1);
@ -555,7 +556,7 @@ public class EmInfoServiceImpl extends BaseServiceImpl<EmInfoMapper, EmInfoEntit
for (ContentVO content : contentVOList) { for (ContentVO content : contentVOList) {
EmInfoContentVO vo = new EmInfoContentVO(); EmInfoContentVO vo = new EmInfoContentVO();
BeanUtils.copyProperties(content, vo); BeanUtils.copyProperties(content, vo);
vo.setEmName(emInfo.getName());
if (Func.isNotEmpty(childrenMap)) { if (Func.isNotEmpty(childrenMap)) {
DeviceChildrenVO deviceChildrenVO = childrenMap.get(vo.getAttrSignage()); DeviceChildrenVO deviceChildrenVO = childrenMap.get(vo.getAttrSignage());
vo.setInstanceFacDeviceId(Optional.ofNullable(deviceChildrenVO).map(DeviceChildrenVO::getRealId).orElse(null));//deviceChildrenVO.getRealId() vo.setInstanceFacDeviceId(Optional.ofNullable(deviceChildrenVO).map(DeviceChildrenVO::getRealId).orElse(null));//deviceChildrenVO.getRealId()
@ -776,18 +777,19 @@ public class EmInfoServiceImpl extends BaseServiceImpl<EmInfoMapper, EmInfoEntit
emInfo.setInstallTime(new Date()); emInfo.setInstallTime(new Date());
emInfo.setRunStatus("1"); emInfo.setRunStatus("1");
emInfo.setStatus(1); emInfo.setStatus(1);
emInfo.setHomePageDisplay("1");
emInfo.setRunDate(new Date()); emInfo.setRunDate(new Date());
emInfo.setCreateDept(station.getRefDept()); emInfo.setCreateDept(station.getRefDept());
emInfo.setCreateTime(new Date()); emInfo.setCreateTime(new Date());
emInfo.setCreateUser(AuthUtil.getUserId()); emInfo.setCreateUser(AuthUtil.getUserId());
if (SET_TYPE.equals(emInfo.getEmType())) { if (SET_TYPE.equals(emInfo.getEmType())) {
Integer maxIndex = baseMapper.getMaxEmIndexByPid(pid); Integer maxIndex = baseMapper.getMaxEmIndexByPid(emInfo.getDepartment(), emInfo.getEmGrade());
if (Func.isNotEmpty(maxIndex)) { if (Func.isNotEmpty(maxIndex)) {
emInfo.setEmIndex(maxIndex + 1); emInfo.setEmIndex(maxIndex + 1);
} else { } else {
emInfo.setEmIndex(1); emInfo.setEmIndex(1);
} }
emInfo.setName(emInfo.getEmIndex() + "号机组"); emInfo.setName(emTree.getName() + emInfo.getEmIndex() + "号机组");
} }
this.save(emInfo); this.save(emInfo);
LambdaQueryWrapper<EmTreeParamEntity> treeParamWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<EmTreeParamEntity> treeParamWrapper = new LambdaQueryWrapper();

2
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/vo/EmInfoContentVO.java

@ -11,6 +11,8 @@ import lombok.Data;
@Data @Data
public class EmInfoContentVO { public class EmInfoContentVO {
private Long id;
@ApiModelProperty(value = "内容编码") @ApiModelProperty(value = "内容编码")
private String code; private String code;

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/DefectCheckServiceImpl.java

@ -107,7 +107,7 @@ public class DefectCheckServiceImpl extends BaseServiceImpl<OperPhenomenonMapper
* @return * @return
*/ */
@Override @Override
//@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public OperPhenomenonEntity startCheck(OperPhenomenonEntity entity) { public OperPhenomenonEntity startCheck(OperPhenomenonEntity entity) {
// 步骤1.保存现象 // 步骤1.保存现象
if (!this.savePhenomenon(entity)) { if (!this.savePhenomenon(entity)) {

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/mapper/ImsDutyMainMapper.xml

@ -311,7 +311,7 @@
limit 1; limit 1;
</select> </select>
<select id="selectDutyMainInfoSignV2" resultType="com.hnac.hzims.operational.duty.vo.DutyMainInfoVo"> <select id="selectDutyMainInfoSignV2" resultType="com.hnac.hzims.operational.duty.vo.DutyMainInfoVo">
SELECT DM.*, DC.`CLASS_NAME` as managerId, DC.`START_TIME`, DC.`END_TIME` SELECT DM.*, DC.`CLASS_NAME`, DC.`START_TIME`, DC.`END_TIME`
FROM hz_ims_duty_main DM FROM hz_ims_duty_main DM
JOIN hz_ims_duty_class DC JOIN hz_ims_duty_class DC
ON DM.`CLASS_ID` = DC.`ID` ON DM.`CLASS_ID` = DC.`ID`

Loading…
Cancel
Save