Commit 0f9bbc4e authored by maoying's avatar maoying

Merge branch 'developer' into develop_dl_plan6

parents 005debe8 e8f4185b
This diff is collapsed.
This diff is collapsed.
......@@ -8,7 +8,7 @@ import lombok.Data;
@Data
@Component
@ConfigurationProperties(prefix = "avic.email")
//@ConfigurationProperties(prefix = "avic.email")
public class EMailModel {
String host;
int port;
......
......@@ -22,7 +22,9 @@ import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -34,17 +36,28 @@ import com.yeejoin.amos.avic.face.orm.entity.AvicEMail;
@Component
@DependsOn("systemctl")
public class EMailSenderService extends BaseService<AvicEMailModel,AvicEMail, AvicEMailMapper>{
private Transport transport;
@Autowired
private EMailModel eMailModel;
public EMailSenderService() throws Exception {
init(eMailModel.getHost(), eMailModel.getPort(), eMailModel.getUsername(), eMailModel.getPassword(), eMailModel.isValipwd(), eMailModel.isEnabledStarttls());
//初始化该类拿不到配置文件里的东西
//init(eMailModel.getHost(), eMailModel.getPort(), eMailModel.getUsername(), eMailModel.getPassword(), eMailModel.isValipwd(), eMailModel.isEnabledStarttls());
}
public void start(List<DictionarieValueModel> result) throws Exception{
eMailModel.setHost(result.get(0).getDictDataValue());
eMailModel.setPort(Integer.parseInt(result.get(1).getDictDataValue()));
eMailModel.setUsername(result.get(2).getDictDataValue());
eMailModel.setPassword(result.get(3).getDictDataValue());
init(eMailModel.getHost(), eMailModel.getPort(), eMailModel.getUsername(), eMailModel.getPassword(), eMailModel.isValipwd(), eMailModel.isEnabledStarttls());
}
public void init(String host, int port, final String username, final String password, boolean valipwd , boolean enabledStarttls) throws Exception {
Properties props = System.getProperties();
......@@ -85,8 +98,8 @@ public class EMailSenderService extends BaseService<AvicEMailModel,AvicEMail, Av
transport.sendMessage(mimeMessage, addresses);
transport.close();
}
public void send(String avicCode, String targetAddress, String text, String file) throws Exception {
MimeMessage mimeMessage = new MimeMessage(Session.getInstance(new Properties()));
......@@ -94,25 +107,25 @@ public class EMailSenderService extends BaseService<AvicEMailModel,AvicEMail, Av
mimeMessage.setRecipients(Message.RecipientType.TO, new Address[]{
new InternetAddress(targetAddress, avicCode)
});
mimeMessage.setSubject(11111111 + UUID.randomUUID().toString());
mimeMessage.setSentDate(new Date());
mimeMessage.setHeader("X-Mailer", "LOTONtechEmail");
mimeMessage.setHeader("usercode_header", "xUnMI9FGtWvuFYjHZAlWdmjh58sWfyZOOJNa+HwaJfELrqMvJg3iuIjRAhpuccf5");
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(text);
Multipart mp = new MimeMultipart();
mimeMessage.setContent(mp);
mimeMessage.writeTo(new FileOutputStream(new File("D:\\temp.eml")));
for (int i = 0; i < 1; i++) {
doSend(mimeMessage, new Address[]{
new InternetAddress("ccc<user4@test.com>"),
});
}
}
public String getEmailTemplate() {
List<AvicEMailModel> list = this.queryForList(null, false);
for (AvicEMailModel model : list) {
......
......@@ -65,7 +65,7 @@ public class EquipmentSpecificAlarm extends BaseEntity {
@TableField("frequency")
private int frequency;
@ApiModelProperty(value = "报警状态:1报警0恢复")
@ApiModelProperty(value = "报警状态:1报警0恢复 -> 1-报警 0-正常")
@TableField("status")
private int status;
......
......@@ -31,7 +31,7 @@ public class BuildingVideoVO {
private String token;
@ApiModelProperty("位置")
private String location = "1楼202房间";
private String location = "";
@ApiModelProperty("设备id")
private Long specificId;
......
......@@ -149,4 +149,6 @@ public class PointTreeVo {
* 装备编码
*/
private String code;
//建筑类型
private String groupType;
}
......@@ -88,7 +88,7 @@ public class AlertCallePowerTransferRo implements Serializable{
private String powerTransType;
//bug 5973
@Label(value = "类别")
private Integer category;
// @Label(value = "类别")
// private Integer category;
}
......@@ -28,4 +28,11 @@ public interface IPowerTransferCompanyResourcesService {
* @return 车辆状态
*/
PowerTransferCompanyResources getResourceById(String resourceId);
/**
* 根据ID获取资源数量 getResourceById修改
* @param resourceId
* @return
*/
int getCarExecutingCountById(String resourceId, String status);
}
......@@ -3,9 +3,13 @@ package com.yeejoin.amos.avic.config;
import java.util.HashMap;
import java.util.List;
import javax.annotation.PostConstruct;
import com.yeejoin.amos.avic.face.service.EMailSenderService;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.scheduling.annotation.EnableScheduling;
......@@ -32,6 +36,9 @@ public class AmosAuth {
@Autowired
Privilege privilege;
/*用于加载邮箱信息*/
@Autowired
private EMailSenderService eMailSenderService;
HashMap<String, Object> model = null;
......@@ -85,5 +92,19 @@ public class AmosAuth {
RequestContext.setProduct(product);
RequestContext.setAppKey(appKey);
Privilege.agencyUserClient.getme();
//配置发送方邮箱信息
configureEmail();
}
private void configureEmail() {
FeignClientResult<List<DictionarieValueModel>> emailbox = Systemctl.dictionarieClient.dictValues("EMAIL_BOX");
List<DictionarieValueModel> result = emailbox.getResult();
try {
eMailSenderService.start(result);
}catch (java.lang.Exception e) {
e.printStackTrace();
}
}
}
......@@ -154,10 +154,26 @@ public class BuildingController extends AbstractBaseController {
@GetMapping(value = "/pointTree")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "建筑装备树", notes = "楼层点位图使用")
public Object getBuildTree(@RequestParam(required = false) String bizOrgCode) {
public Object getBuildTree(@RequestParam(required = false) String bizOrgCode,@RequestParam(required = false) String instanceId) {
return buildService.getBuildTree(bizOrgCode);
return buildService.getBuildTree(bizOrgCode,instanceId);
}
@GetMapping(value = "/buuildTree")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按需加载建筑装备树", notes = "楼层点位图使用")
public Object getBuildTreeNew(@RequestParam(required = false) String bizOrgCode,@RequestParam(required = false) String instanceId,@RequestParam(required = false) String displayName) {
return buildService.getEquipTree(bizOrgCode,instanceId,displayName);
}
@GetMapping(value = "/equipTree")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "按需加载建筑装备树", notes = "楼层点位图使用")
public Object getEquipTreeNew(@RequestParam(required = false) String bizOrgCode,@RequestParam(required = false) String instanceId) {
return buildService.getBuildTreeNew(bizOrgCode,instanceId);
}
@GetMapping(value = "/pointTreeNotEqu")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "建筑装备树", notes = "楼层点位")
......@@ -168,11 +184,6 @@ public class BuildingController extends AbstractBaseController {
return buildService.getBuildTreeNot(bizOrgCode);
}
@GetMapping(value = "/3dPointTree")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "建筑装备树", notes = "三维使用")
......
......@@ -33,8 +33,8 @@ public class EquipmentInfoOnPlanController {
@ApiOperation(httpMethod = "GET", value = "消防炮信息", notes = "消防炮信息")
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value ="/monitor", method = RequestMethod.GET)
public ResponseModel getFireMonitorInfo(@RequestParam(required=false) Long fireEquipmentId) {
List<Map<String, Object>> list = equipmentInfoOnPlanService.getFireMonitorInfo(fireEquipmentId);
public ResponseModel getFireMonitorInfo(@RequestParam(required=false) Long equipmentId) {
List<Map<String, Object>> list = equipmentInfoOnPlanService.getFireMonitorInfo(equipmentId);
return ResponseHelper.buildResponse(list);
}
......
package com.yeejoin.equipmanage.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.datasync.enums.EquipmentStandardEnum;
......@@ -58,6 +59,14 @@ public class EquipmentStandardController extends AbstractBaseController {
equipmentStandard.setOrgCode(getOrgCode());
equipmentStandard.setCreateId(RequestContext.getExeUserId());
this.checkEquipAndSengPatrol(equipmentStandard);
QueryWrapper<EquipmentStandard> qw = new QueryWrapper<>();
qw.lambda().eq(EquipmentStandard::getEquipmentId, equipmentStandard.getEquipmentId())
.eq(EquipmentStandard::getType, equipmentStandard.getType())
.eq(EquipmentStandard::getOrgCode, equipmentStandard.getOrgCode());
int count = iEquipmentStandardService.count(qw);
if (count > 0) {
throw new BaseException("该单位下该装备的规范已存在");
}
return iEquipmentStandardService.save(equipmentStandard);
}
......
......@@ -571,7 +571,7 @@ public class FireFightingSystemController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public List<SpeIndexVo> selectById(Long id) {
return fireFightingSystemService.getSpeIndex(id);
return fireFightingSystemService.getSpeIndex(id,1);
}
......
......@@ -99,7 +99,7 @@ public class MaintenanceResourceController extends AbstractBaseController {
@ApiOperation("根据实例ID,获取维保设施资源树")
@GetMapping(value = "/findTreeById")
public List<MaintenanceResourceDto> findTreeByType(Long id) {
return maintenanceResourceService.findTreeById(id);
return maintenanceResourceService.findTreeById(id, getUserId(), getAppKey(), getProduct(), getToken());
}
/**
......
......@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -154,6 +155,7 @@ public class MaintenanceResourceDataController extends AbstractBaseController {
public IPage<MaintenanceResourceData> listPage(Integer pageNum, Integer pageSize, MaintenanceResourceDataVo resourceData) {
MaintenanceResourceData data = new MaintenanceResourceData();
List<Long> buildingIds = resourceData.getBuildingIds();
Long fireFacilityId = resourceData.getFireFacilityId();
BeanUtils.copyProperties(resourceData, data);
Page<MaintenanceResourceData> pageBean;
QueryWrapper<MaintenanceResourceData> queryWrapper = new QueryWrapper<>();
......
......@@ -525,7 +525,7 @@ public class TopographyController extends AbstractBaseController {
alarm = list.get(0);
equipmentSpecific.setStatus(alarm.getStatus());
} else {
equipmentSpecific.setStatus(null);
equipmentSpecific.setStatus(0);
}
equipmentSpecific.setFullqrCode("01#" + equipmentSpecific.getQrCode());
String sysName = this.getSystemNameBySpeId(equipmentSpecific);
......
......@@ -162,4 +162,13 @@ public interface JcsFeign {
ResponseModel<List<OrgUsrDto>> getByAmosId(
@RequestParam(required = false) List<String> amosIds);
/**
* 根据amosId查询人员
*
* @return
*/
@RequestMapping(value = "/equip/getMaintenanceId", method = RequestMethod.GET, consumes = "application/json")
ResponseModel<Long> getMaintenanceId(
@RequestParam() String userId);
}
......@@ -67,7 +67,10 @@ public interface BuildingMapper extends BaseMapper<Building> {
* @return
* @param bizOrgCode
*/
List<PointTreeVo> getBuildList(@Param("bizOrgCode") String bizOrgCode);
List<PointTreeVo> getBuildList(@Param("bizOrgCode") String bizOrgCode,@Param("instanceId") String instanceId);
List<PointTreeVo> getBuildListNew(@Param("bizOrgCode") String bizOrgCode,@Param("instanceId") String instanceId);
List<PointTreeVo> getBuildAll(@Param("displayName") String displayName);
/**
* 获取建筑树主干
......
......@@ -105,5 +105,7 @@ public interface EquipmentSpecificIndexMapper extends BaseMapper<EquipmentSpecif
List<EquipmentIndexVO> getEquipIndexBySpecificIdIn(@Param("list") List<String> specificDetails);
List<EquipmentIndexVO> getEquipIndexByIdIn(@Param("list") List<Long> specificIndexIds);
List<Map<String, Object>> getEquipSpecificIndexByUpdateDateDesc();
}
package com.yeejoin.equipmanage.mapper;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipment;
import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto;
import com.yeejoin.equipmanage.common.dto.UserDto;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.EquipmentCategory;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.MaintenanceResourceData;
import com.yeejoin.equipmanage.common.entity.dto.EquipmentSpecificDTO;
import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.vo.*;
import liquibase.pro.packaged.M;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.yeejoin.equipmanage.common.entity.vo.ComplementCodeVO;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.entity.vo.PointTreeVo;
import com.yeejoin.equipmanage.common.entity.vo.SourceNameByEquipSpeIdVO;
import com.yeejoin.equipmanage.common.vo.EquipCategoryVo;
import com.yeejoin.equipmanage.common.vo.EquipFor3DVO;
import com.yeejoin.equipmanage.common.vo.EquipmentDetailVo;
import com.yeejoin.equipmanage.common.vo.EquipmentOnCarVo;
import com.yeejoin.equipmanage.common.vo.EquipmentSpecific3dVo;
import com.yeejoin.equipmanage.common.vo.MaintenanceResourceDataVo;
/**
* 消防资源配置 Mapper 接口
......@@ -210,7 +222,8 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
List<Map<String,String>> getStationInfo();
List<Map<String, Object>> getFireMonitorInfo(@Param("fireEquipmentId") Long fireEquipmentId, @Param("list") String[] strings);
List<Map<String, Object>> getFireMonitorInfo(@Param("equipmentId") Long fireEquipmentId, @Param("list") String[] strings);
List<Map<String, Object>> getFirePumpInfo(@Param("list") String[] strings);
......
......@@ -75,7 +75,12 @@ public interface FireFightingSystemMapper extends BaseMapper<FireFightingSystemE
*
* @return
*/
List<PointTreeVo> getPointData(@Param("id") String id);
List<PointTreeVo> getPointData(@Param("id") String id,@Param("instanceId") String instanceId);
List<PointTreeVo> getPointDataNew(@Param("id") String id,@Param("instanceId") String instanceId,@Param("displayName") String displayName);
List<PointTreeVo> getPointDataNum(@Param("id") String id);
/**
* 获取装备数据
......
......@@ -109,7 +109,11 @@ public interface IBuilldService extends IService<Building> {
* @return
* @param bizOrgCode
*/
List<PointTreeVo> getBuildTree(String bizOrgCode);
List<PointTreeVo> getBuildTree(String bizOrgCode,String instanceId);
List<PointTreeVo> getEquipTree(String bizOrgCode,String instanceId,String displayName);
List<PointTreeVo> getBuildTreeNew(String bizOrgCode,String instanceId);
List<PointTreeVo> getBuildTreeNot(String bizOrgCode);
/**
* 获取 建筑装备树
......
......@@ -92,7 +92,7 @@ public interface IFireFightingSystemService extends IService<FireFightingSystemE
*
* @return
*/
List<SpeIndexVo> getSpeIndex(Long id);
List<SpeIndexVo> getSpeIndex(Long id,int flag);
/**
* 列表查询
......
......@@ -78,7 +78,7 @@ public interface IMaintenanceResourceService extends IService<MaintenanceResourc
List<MaintenanceResourceDto> selectCompanyList(String appKey, String product, String token);
List<MaintenanceResourceDto> findTreeById(Long id);
List<MaintenanceResourceDto> findTreeById(Long id,String userId, String appKey, String product, String token);
List<MaintenanceResourceDto> selectOwnerUnitList(Long id, Integer type);
......
......@@ -18,10 +18,7 @@ import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.dto.BuildIsRiskDTO;
import com.yeejoin.equipmanage.common.entity.dto.BuildSearchDTO;
import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.enums.GroupCodeEnum;
import com.yeejoin.equipmanage.common.enums.GroupTypeEnum;
import com.yeejoin.equipmanage.common.enums.IndustryEnum;
import com.yeejoin.equipmanage.common.enums.StroageTankEnum;
import com.yeejoin.equipmanage.common.enums.*;
import com.yeejoin.equipmanage.common.utils.EnumsUtils;
import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.AlarmDataVO;
......@@ -549,15 +546,73 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
}
@Override
public List<PointTreeVo> getBuildTree(String bizOrgCode) {
List<PointTreeVo> responses = this.baseMapper.getBuildList(bizOrgCode);
public List<PointTreeVo> getBuildTree(String bizOrgCode,String instanceId) {
List<PointTreeVo> responses = this.baseMapper.getBuildList(bizOrgCode,instanceId);
// id为null 避免查询时按系统点位图逻辑查询
return fireFightingSystemService.transferListToPointTree(responses, null);
return fireFightingSystemService.transferListToPointTree(responses, null,instanceId);
}
public List<PointTreeVo> getEquipTree(String bizOrgCode,String instanceId,String displayName) {
//根据关键字筛选建筑树
List<PointTreeVo> responses = this.baseMapper.getBuildAll(displayName);
if(ValidationUtil.isEmpty(bizOrgCode) && ValidationUtil.isEmpty(instanceId) && ValidationUtil.isEmpty(displayName) ){
return getTree(responses);
} else {
//组装 建筑和装备树
List<PointTreeVo> pointTreeVos = fireFightingSystemService.transferListToPointTreeNew(responses, null, instanceId, displayName);
if(!ValidationUtil.isEmpty(pointTreeVos)){
return pointTreeVos ;
}
//如果筛选的关键字没有装备 返回建筑树
return getTree(responses);
}
}
//组装接口
public List<PointTreeVo> getTree( List<PointTreeVo> responses) {
List<PointTreeVo> pointDataNum = fireFightingSystemMapper.getPointDataNum(null);
if (pointDataNum.size() > 0 && pointDataNum.size() == responses.size()) {
responses.addAll(pointDataNum);
}else {
List<String> ids = Lists.newArrayList();
responses.forEach(r->ids.add(r.getSequenceNbr().toString()));
List<PointTreeVo> collect = pointDataNum.stream().filter(e -> ids.toString().contains(e.getParentId().toString())).collect(Collectors.toList());
responses.addAll(collect);
}
Map<Long, PointTreeVo> map = new HashMap<>(responses.size());
responses.forEach(e -> map.put(e.getSequenceNbr(), e));
Set<? extends Map.Entry<Long, ? extends PointTreeVo>> entries = map.entrySet();
List<PointTreeVo> treeList = new ArrayList<>();
entries.forEach(entry -> {
PointTreeVo value = entry.getValue();
if (value != null) {
PointTreeVo treeDto = map.get(value.getParentId());
if (treeDto != null) {
List<PointTreeVo> children = treeDto.getChildren();
if (children == null) {
children = new ArrayList<>();
treeDto.setChildren(children);
}
children.add(value);
} else {
treeList.add(value);
}
}
});
return treeList;
}
@Override
public List<PointTreeVo> getBuildTreeNew(String bizOrgCode,String instanceId) {
List<PointTreeVo> responses = this.baseMapper.getBuildListNew(bizOrgCode,instanceId);
// id为null 避免查询时按系统点位图逻辑查询
return fireFightingSystemService.transferListToPointTree(responses, null,instanceId);
}
@Override
public List<PointTreeVo> getBuildTreeNot(String bizOrgCode) {
List<PointTreeVo> responses = this.baseMapper.getBuildList(bizOrgCode);
List<PointTreeVo> responses = this.baseMapper.getBuildList(bizOrgCode,null);
List<PointTreeVo> treeList = new ArrayList<>();
for (PointTreeVo tree : responses) {
......@@ -580,7 +635,7 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
@Override
public List<PointTreeVo> get3dBuildTree() {
List<PointTreeVo> responses = this.baseMapper.getBuildList(null);
List<PointTreeVo> responses = this.baseMapper.getBuildList(null,null);
return fireFightingSystemService.transferListTo3dPointTree(responses);
}
......
......@@ -4,6 +4,7 @@ import com.google.common.collect.Maps;
import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.mapper.CarMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificAlarmLogMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificIndexMapper;
import com.yeejoin.equipmanage.mapper.EquipmentSpecificMapper;
import com.yeejoin.equipmanage.service.IEquipmentInfoOnPlanService;
import org.apache.commons.compress.utils.Lists;
......@@ -31,6 +32,9 @@ public class EquipmentInfoOnPlanServiceImpl implements IEquipmentInfoOnPlanServi
@Autowired
private EquipmentSpecificAlarmLogMapper equipmentSpecificAlarmLogMapper;
@Autowired
EquipmentSpecificIndexMapper equipmentSpecificIndexMapper;
@Autowired
private CarMapper carMapper;
......@@ -42,9 +46,9 @@ public class EquipmentInfoOnPlanServiceImpl implements IEquipmentInfoOnPlanServi
String pumpCodes;
@Override
public List<Map<String, Object>> getFireMonitorInfo(Long fireEquipmentId) {
public List<Map<String, Object>> getFireMonitorInfo(Long equipmentId) {
String[] strings = monitorCodes.split(",");
List<Map<String, Object>> list = equipmentSpecificMapper.getFireMonitorInfo(fireEquipmentId, strings);
List<Map<String, Object>> list = equipmentSpecificMapper.getFireMonitorInfo(equipmentId, strings);
return Optional.ofNullable(list).orElse(Lists.newArrayList());
}
......@@ -57,19 +61,7 @@ public class EquipmentInfoOnPlanServiceImpl implements IEquipmentInfoOnPlanServi
@Override
public List<Map<String, Object>> getOtherEquipInfo() {
Map<String, Object> map = equipmentSpecificAlarmLogMapper.getPlanRecord();
Date startTime = null;
Long equipmentId = null;
if (!ValidationUtil.isEmpty(map)) {
try {
startTime = DateUtils.dateParse(String.valueOf(map.get("startTime")), DateUtils.DATE_TIME_T_PATTERN);
equipmentId = Long.valueOf(String.valueOf(map.get("equipmentId")));
} catch (Exception e) {
e.printStackTrace();
}
}
String dateParam = startTime == null ? null : new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(startTime);
List<Map<String, Object>> list = equipmentSpecificAlarmLogMapper.getOtherEquipInfo(dateParam, equipmentId);
List<Map<String, Object>> list = equipmentSpecificIndexMapper.getEquipSpecificIndexByUpdateDateDesc();
return Optional.ofNullable(list).orElse(Lists.newArrayList());
}
......
......@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.net.Inet4Address;
......@@ -399,13 +400,27 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
// responses.add(p);
// });
// List<PointTreeVo> regionList = responses.stream().filter(r -> "TRUE".equals(r.getIsRegion())).collect(Collectors.toList());
List<PointTreeVo> buildList = buildingMapper.getBuildList(orgCode);
return transferListToPointTree(buildList, id);
List<PointTreeVo> buildList = buildingMapper.getBuildList(orgCode,null);
return transferListToPointTree(buildList, id,null);
}
@Override
public List<SpeIndexVo> getSpeIndex(Long id) {
return makeStatus(fireFightingSystemMapper.getSpeIndex(id));
public List<SpeIndexVo> getSpeIndex(Long id,int flag) {
// 因此处代码其他地方有调用 增加表示判断 flag == 1 为 消防点位图处需要iot编码所用
if (flag == 1){
List<SpeIndexVo> speIndexVos = makeStatus(fireFightingSystemMapper.getSpeIndex(id));
if (!ValidationUtil.isEmpty(speIndexVos)){
EquipmentSpecific equipmentSpecific = equipmentSpecificSerivce.getBaseMapper().selectById(id);
if (!ValidationUtil.isEmpty(equipmentSpecific)){
SpeIndexVo speIndexVo = new SpeIndexVo();
speIndexVo.setName("设备编码");
speIndexVo.setValue(equipmentSpecific.getCode());
speIndexVos.add(0,speIndexVo);
}
}
return speIndexVos;
}
return makeStatus(fireFightingSystemMapper.getSpeIndex(id));
}
private void insertFiles(FireFightingSystemVo vo) {
......@@ -480,9 +495,9 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
* @param id
* @return
*/
public List<PointTreeVo> transferListToPointTree(List<PointTreeVo> allRiskSource, String id) {
public List<PointTreeVo> transferListToPointTree(List<PointTreeVo> allRiskSource, String id,String instanceId) {
//TODO id为空,为消防建筑使用;id不为空,为点位图使用
List<PointTreeVo> pointData = fireFightingSystemMapper.getPointData(id);
List<PointTreeVo> pointData = fireFightingSystemMapper.getPointData(id,instanceId);
if (!CollectionUtils.isEmpty(pointData)) {
// 查询所有wl_source_scene,判断是否绑定
List<SourceScene> sourceSceneList = sourceSceneMapper.selectList(null);
......@@ -558,6 +573,88 @@ public class FireFightingSystemServiceImpl extends ServiceImpl<FireFightingSyste
* 生成树结构
*
* @param allRiskSource
* @param id
* @return
*/
public List<PointTreeVo> transferListToPointTreeNew(List<PointTreeVo> allRiskSource, String id,String instanceId,String displayName) {
//TODO id为空,为消防建筑使用;id不为空,为点位图使用
List<PointTreeVo> pointData = fireFightingSystemMapper.getPointDataNew(id,instanceId,displayName);
if (!CollectionUtils.isEmpty(pointData)) {
// 查询所有wl_source_scene,判断是否绑定
List<SourceScene> sourceSceneList = sourceSceneMapper.selectList(null);
Map<Long, String> sourceSceneMap = null;
String equipSpecificIds = null;
if (!CollectionUtils.isEmpty(sourceSceneList)) {
sourceSceneMap = sourceSceneList.stream().collect(Collectors.toMap(SourceScene::getSourceId, SourceScene::getPointInScene));
List<String> equipSpecificIdList = sourceSceneList.stream().map(SourceScene::getPointInScene).collect(Collectors.toList());
equipSpecificIds = String.join(",", equipSpecificIdList);
}
// 优化不查指标
for (PointTreeVo p : pointData) {
Long buildOrSysId = p.getParentId();
Long equipSpecificId = p.getSequenceNbr();
Map map = new HashMap(7);
map.put("imgPath", p.getImgPath());
map.put("equipCode", p.getEquipCode());
map.put("equipSyetemId", p.getEquipSyetemId());
map.put("equipTypeId", p.getEquipId());
map.put("speindexApi", speindexUrl + equipSpecificId);
map.put("detailInfoApi", equipmentDetailUrl + p.getSequenceNbr());
map.put("detailApi", equipmentDetailUrl + p.getSequenceNbr());
p.setDataConfig(map);
if (StringUtils.isEmpty(id)) {
// 建筑
if (equipSpecificIds.contains(String.valueOf(equipSpecificId))) {
p.setBinding(true);
} else {
p.setBinding(false);
}
} else {
if (sourceSceneMap != null) {
String pointInScene = sourceSceneMap.get(buildOrSysId);
if (!StringUtils.isEmpty(pointInScene)) {
// 系统
if (pointInScene.contains(String.valueOf(equipSpecificId))) {
p.setBinding(true);
} else {
p.setBinding(false);
}
}
}
}
}
allRiskSource.addAll(pointData);
// 树组装优化
Map<Long, PointTreeVo> map = new HashMap<>(allRiskSource.size());
allRiskSource.forEach(e -> map.put(e.getSequenceNbr(), e));
Set<? extends Map.Entry<Long, ? extends PointTreeVo>> entries = map.entrySet();
List<PointTreeVo> treeList = new ArrayList<>();
entries.forEach(entry -> {
PointTreeVo value = entry.getValue();
if (value != null) {
PointTreeVo treeDto = map.get(value.getParentId());
if (treeDto != null) {
List<PointTreeVo> children = treeDto.getChildren();
if (children == null) {
children = new ArrayList<>();
treeDto.setChildren(children);
}
children.add(value);
} else {
treeList.add(value);
}
}
});
return treeList;
}
return Collections.emptyList();
}
/**
* 生成树结构
*
* @param allRiskSource
* @return
*/
public List<PointTreeVo> transferListTo3dPointTree(List<PointTreeVo> allRiskSource) {
......
......@@ -12,6 +12,7 @@ import com.yeejoin.equipmanage.common.dto.WaterResourceDto;
import com.yeejoin.equipmanage.common.dto.WaterResourceTypeDto;
import com.yeejoin.equipmanage.common.entity.MaintenanceResource;
import com.yeejoin.equipmanage.common.entity.MaintenanceResourceData;
import com.yeejoin.equipmanage.common.entity.publics.BaseTreeNode;
import com.yeejoin.equipmanage.common.enums.MaintenanceResourceEnum;
import com.yeejoin.equipmanage.common.utils.TreeNodeUtil;
import com.yeejoin.equipmanage.common.vo.MaintenanceResourceDataVo;
......@@ -24,13 +25,16 @@ import com.yeejoin.equipmanage.service.IMaintenanceResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.minBy;
import static java.util.stream.Collectors.toList;
/**
* 维保设施资源树Service业务层处理
......@@ -191,9 +195,13 @@ public class MaintenanceResourceServiceImpl extends ServiceImpl<MaintenanceResou
List<Map<String, Object>> result = companyList.getResult();
if (!CollectionUtils.isEmpty(result)) {
List<MaintenanceResourceDto> resourceDtoList = new ArrayList<>();
HashMap<String, Integer> stringStringHashMap = new HashMap<>();
result.stream().forEach(x -> {
MaintenanceResourceDto dto = JSONObject.parseObject(JSONObject.toJSONString(x), MaintenanceResourceDto.class);
resourceDtoList.add(dto);
if (!stringStringHashMap.containsKey(dto.getName() + dto.getCode() + dto.getType() + dto.getId() + dto.getParentId())) {
resourceDtoList.add(dto);
stringStringHashMap.put(dto.getName() + dto.getCode() + dto.getType() + dto.getId() + dto.getParentId(), 1);
}
});
return resourceDtoList;
}
......@@ -210,14 +218,25 @@ public class MaintenanceResourceServiceImpl extends ServiceImpl<MaintenanceResou
}
@Override
public List<MaintenanceResourceDto> findTreeById(Long id) {
List<MaintenanceResourceDto> list = maintenanceResourceMapper.findTreeById(id);
if (!CollectionUtils.isEmpty(list)) {
List<MaintenanceResourceDto> dtoList = TreeNodeUtil.assembleTreeNotFilter_1(list);//&& x.getId().equals(Long.toString(id)) 这一段用于生成树之后并没有把树子节点数据从list列表删除造成的脏数据的问题 by chenhao 2022-01-12
List<MaintenanceResourceDto> collect = dtoList.stream().filter(x -> !MaintenanceResourceEnum.CLASSIFY.getValue().equals(x.getType()) && x.getId().equals(Long.toString(id))).collect(Collectors.toList());
return collect;
public List<MaintenanceResourceDto> findTreeById(Long id, String userId, String appKey, String product, String token) {
ResponseModel<Long> maintenanceCompanyId = jcsFeign.getMaintenanceId(userId);
if (ObjectUtils.isEmpty(maintenanceCompanyId.getResult())){
return Lists.newArrayList();
}
return Lists.newArrayList();
List<MaintenanceResourceDto> maintenanceResourceTree = getMaintenanceResourceTree(appKey, product, token);
List<MaintenanceResourceDto> resourceTree = maintenanceResourceTree.stream().filter(x -> String.valueOf(maintenanceCompanyId.getResult()).equals(x.getId())).collect(Collectors.toList());
for (MaintenanceResourceDto maintenanceResourceDto : resourceTree) {
maintenanceResourceDto.setChildren(maintenanceResourceDto.getChildren().stream().filter(item -> id.toString().equals(item.getId())).collect(toList()));
}
// 原有代码查询 消防设施树存在重复数据 原因:mt_maintenance_resource 表中绑定机场单位id重复
// List<MaintenanceResourceDto> list = maintenanceResourceMapper.findTreeById(id);
// if (!CollectionUtils.isEmpty(list)) {
// List<MaintenanceResourceDto> dtoList = TreeNodeUtil.assembleTreeNotFilter_1(list);//&& x.getId().equals(Long.toString(id)) 这一段用于生成树之后并没有把树子节点数据从list列表删除造成的脏数据的问题 by chenhao 2022-01-12
// List<MaintenanceResourceDto> collect = dtoList.stream().filter(x -> !MaintenanceResourceEnum.CLASSIFY.getValue().equals(x.getType()) && x.getId().equals(Long.toString(id))).collect(Collectors.toList());
// return collect;
// }
return resourceTree;
}
@Override
......
......@@ -264,12 +264,6 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
if (ObjectUtils.isEmpty(iotDatalist)) {
return;
}
for (IotDataVO item : iotDatalist) {
int count = equipmentSpecificAlarmMapper.selectCountByIotCode(iotCode, item.getKey(), String.valueOf(item.getValue()));
if (count > 0 && "true".equals(item.getValue())) {
return;
}
}
log.info(String.format("收到mqtt消息:%s", message));
realTimeDateProcessing(topicEntity, iotDatalist);
}
......@@ -317,39 +311,38 @@ public class MqttReceiveServiceImpl implements MqttReceiveService {
public void publishDataToCanvas(List<EquipmentSpecificIndex> indexList) {
if (!ObjectUtils.isEmpty(indexList)) {
EquipmentSpecificIndex index = indexList.stream().filter(x -> x.getUpdateDate() != null)
.sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()).get(0);
EquipmentStateVo equipmentStateVo = new EquipmentStateVo();
equipmentStateVo.setEquipName(index.getEquipmentSpecificName());
equipmentStateVo.setOrgCode(index.getOrgCode());
equipmentStateVo.setSpecificId(index.getEquipmentSpecificId());
equipmentStateVo.setEquipCode(index.getQrCode());
equipmentStateVo.setEquipIotCode(index.getIotCode());
equipmentStateVo.setStatus("");
equipmentStateVo.setColor(index.getEmergencyLevelColor());
// 添加性能指标项
equipmentStateVo.setSpeindexList(fireFightingSystemService.getSpeIndex(index.getEquipmentSpecificId()));
Map<String, Object> topicObject = new HashMap<>();
topicObject.put("equipCode", equipmentStateVo.getEquipCode());
if (TrueOrFalseEnum.real.value.toUpperCase().equals(index.getValue().toUpperCase())) {
topicObject.put("color", equipmentStateVo.getColor());
} else {
topicObject.put("color", "");
}
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(equipmentStateVo));
map.put(canvasTopic, topicObject);
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCompletion(int status) {
if (TransactionSynchronization.STATUS_COMMITTED == status) {
// 发送数据至画布
mqttSendGateway.sendToMqtt(canvasTopic, JSON.toJSONString(map));
}
public void afterCommit() {
EquipmentSpecificIndex index = indexList.stream().filter(x -> x.getUpdateDate() != null)
.sorted(Comparator.comparing(EquipmentSpecificIndex::getUpdateDate).reversed())
.collect(Collectors.toList()).get(0);
EquipmentStateVo equipmentStateVo = new EquipmentStateVo();
equipmentStateVo.setEquipName(index.getEquipmentSpecificName());
equipmentStateVo.setOrgCode(index.getOrgCode());
equipmentStateVo.setSpecificId(index.getEquipmentSpecificId());
equipmentStateVo.setEquipCode(index.getQrCode());
equipmentStateVo.setEquipIotCode(index.getIotCode());
equipmentStateVo.setStatus("");
equipmentStateVo.setColor(index.getEmergencyLevelColor());
// 添加性能指标项
//flag 无意义 getSpeIndex 方法其他地方共用 做了额外封装 为0时走原逻辑
int flag = 0;
equipmentStateVo.setSpeindexList(fireFightingSystemService.getSpeIndex(index.getEquipmentSpecificId(),flag));
Map<String, Object> topicObject = new HashMap<>();
topicObject.put("equipCode", equipmentStateVo.getEquipCode());
if (TrueOrFalseEnum.real.value.toUpperCase().equals(index.getValue().toUpperCase())) {
topicObject.put("color", equipmentStateVo.getColor());
} else {
topicObject.put("color", "");
}
Map<String, Object> map = JSON.parseObject(JSON.toJSONString(equipmentStateVo));
map.put(canvasTopic, topicObject);
// 发送数据至画布
mqttSendGateway.sendToMqtt(canvasTopic, JSON.toJSONString(map));
}
});
}
}
......
......@@ -146,7 +146,7 @@ public class RiskSourceSceneServiceImpl extends ServiceImpl<RiskSourceSceneMappe
@Override
public List<PointTreeVo> getImportantEquip(String orgCode) {
List<PointTreeVo> allRiskSource = buildingMapper.getBuildList(null);
List<PointTreeVo> allRiskSource = buildingMapper.getBuildList(null,null);
List<PointTreeVo> treeList = new ArrayList<>();
List<PointTreeVo> pointData = this.baseMapper.getAllImportantEquip();
......
......@@ -2,10 +2,12 @@ package com.yeejoin.amos.boot.module.jcs.biz.controller;
import java.util.List;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.biz.service.impl.WaterResourceServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
......@@ -52,4 +54,11 @@ public class EquipmentController extends BaseController {
public ResponseModel<List<MenuFrom>> getFireSystemWaterResourceList() {
return ResponseHelper.buildResponse(equipmentService.getFireSystemWaterResourceList());
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getMaintenanceId")
@ApiOperation(value = "查询人员绑定维保单位id")
public ResponseModel<Long> getMaintenanceId(@RequestParam() String userId) {
return ResponseHelper.buildResponse(equipmentService.getMaintenanceId(userId));
}
}
......@@ -1836,7 +1836,7 @@ public class AlertSubmittedServiceImpl extends BaseService<AlertSubmittedDto, Al
PushMessageWebAndAppRo pushMessageWebAndAppRo = new PushMessageWebAndAppRo();
pushMessageWebAndAppRo.setRelationId(besidesMap.get("alterId"));
pushMessageWebAndAppRo.setRecivers(userList);
pushMessageWebAndAppRo.setCategory(RuleConstant.NOTIFY);
pushMessageWebAndAppRo.setCategory(RuleConstant.TASK);
pushMessageWebAndAppRo.setIsSendApp(true);
pushMessageWebAndAppRo.setIsSendWeb(true);
pushMessageWebAndAppRo.setRuleType(type);
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.interceptors.PermissionInterceptorContext;
......@@ -8,10 +9,13 @@ import com.yeejoin.amos.boot.biz.common.utils.MenuFrom;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceTypeDto;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.common.api.mapper.MaintenanceCompanyMapper;
import com.yeejoin.amos.boot.module.common.biz.service.impl.WaterResourceServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -34,6 +38,9 @@ public class EquipmentServiceImpl {
WaterResourceServiceImpl waterResourceServiceImpl;
@Autowired
private MaintenanceCompanyMapper maintenanceCompanyMapper;
@Autowired
private RedisUtils redisUtils;
public List<MenuFrom> getFireSystemList() {
// 导出模板增加权限
......@@ -118,4 +125,13 @@ public class EquipmentServiceImpl {
fireSystem.setChildren(children);
return fireSystemDtoList;
}
public Long getMaintenanceId(String userId){
List<MaintenanceCompany> maintenanceCompanies = maintenanceCompanyMapper.selectList(new QueryWrapper<MaintenanceCompany>()
.lambda().eq(MaintenanceCompany::getAmosId, userId).eq(MaintenanceCompany::getIsDelete, 0));
if (!CollectionUtils.isEmpty(maintenanceCompanies)){
return maintenanceCompanies.get(0).getParentId();
}else {
return null;
}
}
}
......@@ -93,4 +93,13 @@ public class PowerTransferCompanyResourcesServiceImpl extends BaseService<PowerT
powerTransferCompanyResourcesQueryWrapper.eq("resources_id", resourceId);
return powerTransferCompanyResourcesMapper.selectOne(powerTransferCompanyResourcesQueryWrapper);
}
@Override
public int getCarExecutingCountById(String resourceId, String status) {
QueryWrapper<PowerTransferCompanyResources> powerTransferCompanyResourcesQueryWrapper = new QueryWrapper<>();
powerTransferCompanyResourcesQueryWrapper.eq("resources_id", resourceId);
powerTransferCompanyResourcesQueryWrapper.eq("status", status);
powerTransferCompanyResourcesQueryWrapper.eq("is_deleted", 0);
return powerTransferCompanyResourcesMapper.selectCount(powerTransferCompanyResourcesQueryWrapper);
}
}
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.mapper.DutyPersonShiftMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.DutyShiftMapper;
import com.yeejoin.amos.boot.module.jcs.api.mapper.PowerTransferCompanyResourcesMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.paho.client.mqttv3.MqttException;
......@@ -55,6 +56,7 @@ import com.yeejoin.amos.component.rule.config.RuleConfig;
* @date 2021-06-17
*/
@Service
@Slf4j
public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, PowerTransfer, PowerTransferMapper>
implements IPowerTransferService {
......@@ -318,7 +320,7 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
num = num+ userNames.length;
infoMap_1.put(dutyDetail.get("name").toString(), userNames.length + "");
} else {
num = 1;
num = num +1 ;
infoMap_1.put(dutyDetail.get("name").toString(), "1");
}
resultList.add(infoMap_1);
......@@ -584,7 +586,14 @@ public class PowerTransferServiceImpl extends BaseService<PowerTransferDto, Powe
// 警情力量调派时,点击【任务派发】后,如果被调派的 力量包含消防车,那么该消防车所在的 大队的警铃、广播自动 启动,消防车所在的车库门自动开启
try {
List<Controller> controllers = controllerServiceImpl.list(new LambdaQueryWrapper<Controller>().eq(Controller::getFireTeamSeq, powerTransferCompanyDto.getCompanyId()));
//bug 5863 打印日志 调派车辆后对应警铃未打开
log.info("消防车队伍ID:{}, 根据队伍ID查出来的jc_controller数据:{},查出来的数据量size:{}", powerTransferCompanyDto.getCompanyId(), JSONObject.toJSONString(controllers), controllers.size());
if (controllers.size() > 0) {
log.info("开始执行车库、警铃、广播等联动代码");
ControllerDto[] controllerDtos = new ControllerDto[controllers.size()];
for (int i = 0; i < controllers.size(); i++) {
ControllerDto controllerDto = new ControllerDto();
......
......@@ -266,8 +266,8 @@ public class RuleAlertCalledService {
if (alertCalledFormDto == null) {
return false;
}
//任务型计划 // bug 5973
alertCallePowerTransferRo.setCategory(RuleTypeEnum.任务型计划生成.getCategory());
/* //任务型计划 // bug 5973
alertCallePowerTransferRo.setCategory(RuleTypeEnum.任务型计划生成.getCategory());*/
AlertCalled alertCalled = alertCalledFormDto.getAlertCalled();
alertCallePowerTransferRo
......
......@@ -81,15 +81,17 @@ public class UserCarServiceImpl extends BaseService<AircraftDto, UserCar, UserCa
if (userCar == null) {
return 0;
}
PowerTransferCompanyResources resource = companyResourcesService.getResourceById(userCar.getCarId().toString());
if (resource == null) {
return 0;
}
if ("executing".equals(resource.getCarStatus())) {
return 1;
} else {
return 0;
}
return companyResourcesService.getCarExecutingCountById(userCar.getRecUserId(), "executing");
//bug 6065 首页报错,接口selectOne 一个资源对应多条数据。
// PowerTransferCompanyResources resource = companyResourcesService.getResourceById(userCar.getCarId().toString());
// if (resource == null) {
// return 0;
// }
// if ("executing".equals(resource.getCarStatus())) {
// return 1;
// } else {
// return 0;
// }
}
}
......@@ -16,6 +16,7 @@ import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -2131,7 +2132,18 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
}
// pageParam.put("bizType", bizType);
Page page = new Page(pageParam.getParamPageCurrent(), pageParam.getParamPageSize());
/*
// 导入外部隐患信息已提交,不限制仅自己可见
if (!CollectionUtils.isEmpty(dangerIdList)){
LatentDangerBo lanDer = latentDangerMapper.getById(Long.valueOf(dangerIdList.get(0)));
if (!ObjectUtils.isEmpty(lanDer)){
if ("dangerSubmit".equals(lanDer.getDangerState())){
pageParam.remove("isDraft");
}
}
}
/*
* 处置隐患页面excle导入外部隐患信息无法实现,获取不到数据,以及由当前人导入的数据只能由当前人看见的权限设置------------------by
* 陈浩 on 2022-04-14--start
*/
......
......@@ -2953,4 +2953,15 @@
wesi.equipment_specific_id = wes.id AND wesi.equipment_index_id = wes.realtime_iot_index_id );
</sql>
</changeSet>
<changeSet author="zs" id="20220526-1">
<preConditions onFail="MARK_RAN">
<tableExists tableName="wl_equipment_standard" />
</preConditions>
<comment>修改表wl_equipment_standard唯一索引</comment>
<sql>
DROP INDEX uni ON wl_equipment_standard;
create unique index uni on wl_equipment_standard (`type`, `equipment_id`, `org_code`);
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -183,7 +183,8 @@
group_name AS displayName,
- 1 AS parentId,
NULL AS equipCode,
NULL AS bizOrgCode
NULL AS bizOrgCode,
NULL AS groupType
FROM
wl_form_group
WHERE
......@@ -193,7 +194,8 @@
nam.field_value AS displayName,
par.field_value AS parentId,
cd.field_value AS equipCode,
bzc.field_value AS bizOrgCode
bzc.field_value AS bizOrgCode,
ins.group_type as groupType
FROM
wl_form_instance AS ins
LEFT JOIN wl_form_instance AS nam ON nam.instance_id = ins.instance_id
......@@ -205,8 +207,19 @@
LEFT JOIN wl_form_instance AS bzc ON bzc.instance_id = ins.instance_id
AND bzc.field_name = 'bizOrgCode'
<where>
1 =1
<if test="bizOrgCode != null and bizOrgCode != ''">
bzc.field_value LIKE CONCAT(#{bizOrgCode},'%')
and bzc.field_value LIKE CONCAT(#{bizOrgCode},'%')
</if>
<if test="instanceId != null and instanceId != ''">
and ins.instance_id IN
(
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value in(
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value = #{instanceId})
union
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value = #{instanceId} or
instance_id = #{instanceId}
)
</if>
</where>
GROUP BY
......@@ -216,6 +229,98 @@
) t
</select>
<select id="getBuildListNew" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
SELECT
t.*
FROM
(
SELECT
ins.instance_id AS sequenceNbr,
nam.field_value AS displayName,
par.field_value AS parentId,
cd.field_value AS equipCode,
bzc.field_value AS bizOrgCode,
ins.group_type as groupType
FROM
wl_form_instance AS ins
LEFT JOIN wl_form_instance AS nam ON nam.instance_id = ins.instance_id
AND nam.field_name = 'name'
LEFT JOIN wl_form_instance AS par ON par.instance_id = ins.instance_id
AND par.field_name = 'parentId'
LEFT JOIN wl_form_instance AS cd ON cd.instance_id = ins.instance_id
AND cd.field_name = 'code'
LEFT JOIN wl_form_instance AS bzc ON bzc.instance_id = ins.instance_id
AND bzc.field_name = 'bizOrgCode'
<where>
1 =1
<if test="bizOrgCode != null and bizOrgCode != ''">
and bzc.field_value LIKE CONCAT(#{bizOrgCode},'%')
</if>
<if test="instanceId != null and instanceId != ''">
and ins.instance_id IN
(
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value in(
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value = #{instanceId})
union
select instance_id from wl_form_instance where field_name = 'parentId' AND field_value = #{instanceId} or
instance_id = #{instanceId}
)
</if>
</where>
GROUP BY
ins.instance_id
ORDER BY
parentId
) t
</select>
<select id="getBuildAll" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
SELECT
t.*
FROM
(
SELECT
id AS sequenceNbr,
group_name AS displayName,
- 1 AS parentId,
NULL AS equipCode,
NULL AS bizOrgCode,
NULL AS groupType
FROM
wl_form_group
WHERE
id = 0 UNION ALL
SELECT
ins.instance_id AS sequenceNbr,
nam.field_value AS displayName,
par.field_value AS parentId,
cd.field_value AS equipCode,
bzc.field_value AS bizOrgCode,
ins.group_type as groupType
FROM
wl_form_instance AS ins
LEFT JOIN wl_form_instance AS nam ON nam.instance_id = ins.instance_id
AND nam.field_name = 'name'
LEFT JOIN wl_form_instance AS par ON par.instance_id = ins.instance_id
AND par.field_name = 'parentId'
LEFT JOIN wl_form_instance AS cd ON cd.instance_id = ins.instance_id
AND cd.field_name = 'code'
LEFT JOIN wl_form_instance AS bzc ON bzc.instance_id = ins.instance_id
AND bzc.field_name = 'bizOrgCode'
<where>
<if test="displayName != null and displayName != ''">
nam.field_value like concat ('%',#{displayName},'%')
</if>
</where>
GROUP BY
ins.instance_id
ORDER BY
parentId
) t
</select>
<select id="get3dBuildList" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
select
id as sequenceNbr,
......
......@@ -433,5 +433,27 @@ WHERE wles.id=#{id}
</if>
</where>
</select>
<select id="getEquipSpecificIndexByUpdateDateDesc" resultType="java.util.HashMap">
SELECT
esi.id,
es.`name` AS equipmentSpecificName,
esi.equipment_index_name AS equipmentSpecificIndexName,
IF (
esi.value_label = ''
OR esi.value_label IS NULL,
esi.`value`,
esi.value_label
) AS valueLabel,
es.position AS location,
esi.update_date AS createDate
FROM
`wl_equipment_specific_index` esi
LEFT JOIN wl_equipment_specific es ON es.id = esi.equipment_specific_id
WHERE
esi.`value` IS NOT NULL
ORDER BY
esi.update_date DESC
LIMIT 50
</select>
</mapper>
\ No newline at end of file
......@@ -1549,8 +1549,8 @@
wes.equipment_code LIKE <![CDATA[CONCAT(#{item},'%')]]>
</foreach>
</if>
<if test="fireEquipmentId != null and fireEquipmentId != ''">
AND wes.id = #{fireEquipmentId}
<if test="equipmentId != null and equipmentId != ''">
AND fire.equipment_id = #{equipmentId}
</if>
</where>
ORDER BY realtiemIotIndexUpdateDate DESC
......
......@@ -186,6 +186,46 @@
SET scene_id=#{sceneId}
where id =#{id}
</update>
<!-- 全部建筑下不应该存在装备-->
<select id="getPointDataNum" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
SELECT b.* from (
select
'正在加载中...' as displayName,
da.parentId,
da.sequenceNbr
from (
select
stru.source_id as parentId,
spe.id as sequenceNbr
from wl_stock_detail as det
join wl_warehouse_structure as stru on det.warehouse_structure_id = stru.id
join wl_equipment_specific as spe on det.qr_code = spe.qr_code
join wl_equipment_detail as eqdet on det.equipment_detail_id = eqdet.id
join wl_equipment as equ on eqdet.equipment_id = equ.id
join wl_equipment_category as cat on equ.category_id = cat.id
where det.amount > 0
and spe.single = true and stru.source_id != '0'
) as da
GROUP BY da.parentId
<if test="id != null and id !=''">
where find_in_set(#{id}, da.equipSyetemId)
</if>
<if test="id == null">
union all
SELECT
'正在加载中...' as displayName,
vis.source_id AS parentId,
vid.id AS sequenceNbr
FROM
wl_video AS vid
JOIN wl_video_source AS vis ON vid.id = vis.video_id
JOIN wl_warehouse_structure AS stru ON stru.id = vis.source_id
GROUP BY parentId ) as b
GROUP BY b.parentId
</if>
</select>
<select id="getPointData" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
select * from (
select
......@@ -219,7 +259,16 @@
join wl_equipment as equ on eqdet.equipment_id = equ.id
join wl_equipment_category as cat on equ.category_id = cat.id
where det.amount > 0
and spe.single = true) as da
and spe.single = true
<if test="instanceId != null and instanceId !=''">
and stru.id IN
( select id from wl_warehouse_structure where parent_id in(
select id from wl_warehouse_structure where parent_id = #{instanceId})
union
select id from wl_warehouse_structure where parent_id = #{instanceId}or
id = #{instanceId} )
</if>
) as da
<if test="id != null and id !=''">
where find_in_set(#{id}, da.equipSyetemId)
</if>
......@@ -253,7 +302,117 @@
wl_video AS vid
JOIN wl_video_source AS vis ON vid.id = vis.video_id
JOIN wl_warehouse_structure AS stru ON stru.id = vis.source_id
WHERE
stru.id IN
(
select id from wl_warehouse_structure where parent_id in(
select id from wl_warehouse_structure where parent_id = #{instanceId})
union
select id from wl_warehouse_structure where parent_id = #{instanceId}or
id = #{instanceId}
)
</if>
</select>
<select id="getPointDataNew" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
select * from (
select
'component' as template,
true as openStatus,
if(spe.code is null,eqdet.name,concat(eqdet.name,'(',spe.code,')')) as displayName,
'{\"width\": 20, \"height\": 20}'as initStyle,
'CommonEquip' as componentName,
spe.id as sequenceNbr,
'equipment' as componentKey,
'equipment' as `key`,
equ.img as imgPath,
spe.qr_code as equipCode,
-- spe.code as equipCode,
spe.code AS code,
stru.source_id as parentId,
cat.id as equipId,
cat.code as categoryCode,
cat.name as equipName,
spe.system_id as equipSyetemId,
spe.iot_code as iotCode,
equ.id as groupId,
equ.name as groupName,
'' as ip,
'' as token,
'' as address
from wl_stock_detail as det
join wl_warehouse_structure as stru on det.warehouse_structure_id = stru.id
join wl_equipment_specific as spe on det.qr_code = spe.qr_code
join wl_equipment_detail as eqdet on det.equipment_detail_id = eqdet.id
join wl_equipment as equ on eqdet.equipment_id = equ.id
join wl_equipment_category as cat on equ.category_id = cat.id
where det.amount > 0
and spe.single = true
<if test="instanceId != null and instanceId !=''">
and stru.id IN
( select id from wl_warehouse_structure where parent_id in(
select id from wl_warehouse_structure where parent_id = #{instanceId})
union
select id from wl_warehouse_structure where parent_id = #{instanceId}or
id = #{instanceId} )
</if>
) as da
<where>
<if test="displayName != null and displayName != '' ">
da.displayName like concat ('%',#{displayName},'%')
</if>
<choose>
<when test="id != null and id !=''">
find_in_set(#{id}, da.equipSyetemId)
</when>
<when test="id == null">
union all
SELECT * from (
SELECT
'component' AS template,
TRUE AS openStatus,
IF
( vid.CODE IS NULL, vid.NAME, concat( vid.NAME, '(', vid.CODE, ')' ) ) AS displayName,
'{\"width\": 20, \"height\": 20}' AS initStyle,
'CommonEquip' AS componentName,
vid.id AS sequenceNbr,
'equipment' AS componentKey,
'video' AS `key`,
img AS imgPath,
vid.code AS equipCode,
vid.code AS code,
vis.source_id AS parentId,
vid.id AS equipId,
vid.CODE AS categoryCode,
vid.NAME AS equipName,
'' AS equipSyetemId,
'' AS iotCode,
'1000000000000000' AS groupId,
'监控摄像' AS groupName,
url AS ip,
token,
stru.full_name AS address
FROM
wl_video AS vid
JOIN wl_video_source AS vis ON vid.id = vis.video_id
JOIN wl_warehouse_structure AS stru ON stru.id = vis.source_id
<if test="instanceId != null and instanceId !=''">
and stru.id IN
( select id from wl_warehouse_structure where parent_id in(
select id from wl_warehouse_structure where parent_id = #{instanceId})
union
select id from wl_warehouse_structure where parent_id = #{instanceId}or
id = #{instanceId} )
</if>
) as video
<where>
<if test="displayName != null and displayName != '' ">
video.displayName like concat ('%',#{displayName},'%')
</if>
</where>
</when>
</choose>
</where>
</select>
<select id="get3dPointData" resultType="com.yeejoin.equipmanage.common.entity.vo.PointTreeVo">
SELECT
......
......@@ -132,7 +132,7 @@
fire_fight_sys_id AS id,
fire_fight_sys_name name ,
owner_unit_id as parentId,
IFNULL(classify_type,3)
IFNULL(classify_type,3) as type
FROM
`mt_maintenance_resource_data`
GROUP BY
......
......@@ -53,8 +53,6 @@
group by wlv.id
order by wlv.create_date desc
</select>
<select id="pageBuildingVideo" resultType="com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO">
<!-- SELECT
v.id AS id,
v.name AS name,
......@@ -88,7 +86,7 @@
</if>
</where>
order by v.create_date-->
<select id="pageBuildingVideo" resultType="com.yeejoin.equipmanage.common.entity.vo.BuildingVideoVO">
SELECT
v.id AS id,
v.name AS name,
......@@ -98,28 +96,37 @@
v.address,
v.preset_position as presetPosition
FROM wl_video v
JOIN wl_video_source vc ON vc.video_id = v.id
join wl_form_instance wfl on wfl.instance_id = vc.source_id
WHERE
1 = 1
<if test="dto.buildingId!=null and dto.buildingId!=''">
and FIND_IN_SET(#{dto.buildingId}, vc.parent_source_ids)
</if>
<if test="dto.bizOrgCode!=null and dto.bizOrgCode!=''">
and v.biz_org_code LIKE CONCAT(#{dto.bizOrgCode}, '%')
</if>
<if test="dto.equipmentName!=null and dto.equipmentName!=''">
and v.name like concat('%',#{dto.equipmentName},'%')
</if>
<if test="dto.code!=null and dto.code!=''">
and v.code like concat('%',#{dto.code},'%')
</if>
<if test="dto.orgCode!=null and dto.bizOrgCode!='' and dto.buildingId ==null and dto.buildingId =='' ">
and wfl.field_value like concat (#{dto.bizOrgCode},'%')
</if>
GROUP BY id
order by v.create_date
<choose>
<when test="dto.buildingId!=null and dto.buildingId!=''">
JOIN wl_video_source vc ON vc.video_id = v.id
join wl_form_instance wfl on wfl.instance_id = vc.source_id
WHERE
FIND_IN_SET(#{dto.buildingId}, vc.parent_source_ids)
<if test="dto.equipmentName!=null and dto.equipmentName!=''">
and v.name like concat('%',#{dto.equipmentName},'%')
</if>
<if test="dto.code!=null and dto.code!=''">
and v.code like concat('%',#{dto.code},'%')
</if>
GROUP BY id
order by v.create_date
</when>
<when test="dto.buildingId == null and dto.buildingId ==''">
<where>
<if test="dto.bizOrgCode!=null and dto.bizOrgCode!=''">
v.biz_org_code LIKE CONCAT(#{dto.bizOrgCode}, '%')
</if>
<if test="dto.code!=null and dto.code!=''">
and v.code like concat('%',#{dto.code},'%')
</if>
<if test="dto.equipmentName!=null and dto.equipmentName!=''">
and v.name like concat('%',#{dto.equipmentName},'%')
</if>
</where>
GROUP BY id
order by v.create_date
</when>
</choose>
</select>
<select id="getFireEquipByVideoId" resultType="com.yeejoin.equipmanage.common.entity.vo.BuildingListVO">
......
......@@ -3112,5 +3112,15 @@
</sql>
</changeSet>
<changeSet author="zs" id="2022-05-25-01">
<preConditions onFail="MARK_RAN">
<tableExists tableName="cb_dynamic_form_instance"/>
</preConditions>
<comment>机场单位人员状态旧数据修改</comment>
<sql>
update cb_dynamic_form_instance set field_value_label = '在职' where field_code = 'stateCode' and field_value = '94' and (field_value_label is null) or (field_value_label = '')
</sql>
</changeSet>
</databaseChangeLog>
......@@ -1029,8 +1029,11 @@
<if test="key == 'dangerType' and value != null and value != ''">
and a.danger_type = #{value}
</if>
<if test="key == 'overtimeState' and value != null and value != ''">
and a.overtime_state = #{value}
<if test="key == 'overtimeState' and value != null and value != '' and value == 1">
and a.reform_limit_date &lt; NOW()
</if>
<if test="key == 'overtimeState' and value != null and value != '' and value == 0">
and a.reform_limit_date &gt;= NOW()
</if>
<if test="key == 'beginDeadline' and value != null and value != ''">
and a.reform_limit_date <![CDATA[ >= ]]> #{value}
......@@ -1038,6 +1041,9 @@
<if test="key == 'endDeadline' and value != null and value != ''">
and a.reform_limit_date <![CDATA[ <= ]]> #{value}
</if>
<if test="key == 'pointName' and value != null and value != ''">
and a.biz_info like concat('%"pointName":"', #{value}, '"%')
</if>
</foreach>
</where>
<if test="paramMap.order != null and paramMap.order == 1">
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment