Commit 6f7e8a74 authored by KeYong's avatar KeYong

Merge remote-tracking branch 'origin/develop_dl_plan6' into develop_dl_plan6

parents 664b47df 98859d13
......@@ -394,6 +394,15 @@ LEFT JOIN cb_fire_team cft ON cff.fire_team_id = cft.sequence_nbr
CODE = b.certificatesTypeCode
AND type = 'RYZJLX'
) AS certificatesTypeCode,
(
SELECT
NAME
FROM
cb_data_dictionary
WHERE
CODE = b.stateCode
AND type = 'RYZT'
) AS stateCode,
fp.employee_hierarchy,
cast(b.birthdayTime as datetime) as birthdayTime,
b.*,
......@@ -411,7 +420,7 @@ LEFT JOIN cb_fire_team cft ON cff.fire_team_id = cft.sequence_nbr
max(case field_code when 'personNumber' then field_value end) personNumber,
max(case field_code when 'positionType' then field_value_label end) positionType,
max(case field_code when 'safetyTraining' then field_value end) safetyTraining,
max(case field_code when 'stateCode' then field_value_label end) stateCode,
max(case field_code when 'stateCode' then field_value end) stateCode,
max(case field_code when 'telephone' then field_value end) telephone,
max(case field_code when 'peopleType' then field_value end) peopleType,
max(case field_code when 'nation' then field_value end) nation,
......
......@@ -658,6 +658,15 @@ GROUP BY
CODE = b.certificatesTypeCode
AND type = 'RYZJLX'
) AS certificatesTypeCode,
(
SELECT
NAME
FROM
cb_data_dictionary
WHERE
CODE = b.stateCode
AND type = 'RYZT'
) AS stateCode,
fc.emergency_contact,
fc.emergency_contact_phone,
fp.employee_hierarchy employeeHierarchy,
......@@ -677,16 +686,16 @@ GROUP BY
max(case field_code when 'personNumber' then field_value end) personNumber,
max(case field_code when 'positionType' then field_value_label end) positionType,
max(case field_code when 'safetyTraining' then field_value end) safetyTraining,
max(case field_code when 'stateCode' then field_value_label end) stateCode,
max(case field_code when 'stateCode' then field_value end) stateCode,
max(case field_code when 'telephone' then field_value end) telephone,
max(case field_code when 'peopleType' then field_value end) peopleType,
max(case field_code when 'nation' then field_value end) nation,
max(case field_code when 'birthdayTime' then field_value end) birthdayTime,
max(case field_code when 'maritalStatus' then field_value end) maritalStatus,
max(case field_code when 'nativePlace' then field_value end) nativePlace,
max(case field_code when 'nativePlaceVal' then field_value end) nativePlaceVal,
max(case field_code when 'nativePlaceVal' then field_value_label end) nativePlaceVal,
max(case field_code when 'politicalOutlook' then field_value end) politicalOutlook,
max(case field_code when 'residenceDetails' then field_value end) residenceDetails,
max(case field_code when 'residenceDetails' then field_value_label end) residenceDetails,
max(case field_code when 'residenceDetailVal' then field_value end) residenceDetailVal,
max(case field_code when 'airportAccommodation' then field_value end) airportAccommodation
FROM cb_dynamic_form_instance GROUP BY instance_id) b
......
package com.yeejoin.equipmanage.common.datasync.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
@Data
@ApiModel(value = "详情返回数据", description = "设备数据")
public class FireEquipmentVO implements Serializable {
@ApiModelProperty(value = "所在建筑ID")
@TableField("buildid")
private String buildId;
private String parentId;
private String instanceId;
private String bizOrgCode;
}
......@@ -196,6 +196,9 @@ public class EquipmentSpecificAlarmLog extends BaseEntity {
@TableField(exist = false)
private String jcsConfirmUserName;
@ApiModelProperty(value = "画布中建筑ID", notes = "告警详情 配置点位里用")
@TableField(exist = false)
private String sourceId;
/**
* 颜色
*/
......
......@@ -25,10 +25,10 @@ public class VideoDownloadVO implements Serializable {
@ExcelProperty(value = "token", index = 3)
private String token;
@ExcelProperty(value = "机构编码", index = 4)
@ExcelProperty(value = "机构编码(必填)", index = 4)
private String bizOrgCode;
@ExcelProperty(value = "机构/部门名称", index = 5)
@ExcelProperty(value = "机构/部门名称(必填)", index = 5)
private String bizOrgName;
@ExcelProperty(value = "所属建筑编码", index = 6)
......
......@@ -6,8 +6,15 @@ package com.yeejoin.equipmanage.common.enums;
*
*/
public enum WordTemplateTypeEum {
/**
* 模板分类
*/
resume("简历","jianli.ftl"),
firePatrolReport("消防巡查报表","FirePatrolReport.ftl");
firePatrolReport("消防巡查报表","FirePatrolReport.ftl"),
fireAutoSysManageReport("消防自动化综合管理报表","fireAutoSysManageReport.ftl");
private String label;
private String templateFile;
......
......@@ -3,6 +3,9 @@ package com.yeejoin.equipmanage.common.vo;
import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.metadata.BaseRowModel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
......@@ -18,6 +21,9 @@ import java.util.List;
* @date 2021-07-16
*/
@Data
@HeadRowHeight(30)
@ContentRowHeight(23)
@ColumnWidth(24)
@ApiModel(value = "MaintenanceResourceDataVo", description = "维保设施资源数据Vo")
public class MaintenanceResourceDataVo extends BaseRowModel {
......
......@@ -354,6 +354,7 @@ public class MaintenanceCompanyServiceImpl
LambdaQueryWrapper<MaintenanceCompany> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MaintenanceCompany::getType, code);
queryWrapper.eq(MaintenanceCompany::getAmosId, userId);
queryWrapper.eq(MaintenanceCompany::getIsDelete, false);
return this.baseMapper.selectList(queryWrapper);
}
......
......@@ -94,8 +94,6 @@ public class CarController extends AbstractBaseController {
EquipmentQrcodeMapper equipmentQrcodeMapper;
@Resource(name = "productionQRCodeFactoryMap")
private Map<String, ProductionQRCode> messageHandMap;
@Autowired
EquipmentIotMqttReceiveConfig equipmentIotMqttReceiveConfig;
@Autowired
ICarLonAndLatDataService iCarLonAndLatDataService;
......@@ -183,7 +181,6 @@ public class CarController extends AbstractBaseController {
EquipmentSpecificSerivceImpl.registerMqttTopic(car.getIotCode(), equipmentIotMqttReceiveConfig);
car.setQrCode(QRCodeUtil.generateQRCode());
List<CarProperty> carPropertyList = car.getCarPropertyList();
if (carPropertyList.size() > 0) {
......@@ -330,7 +327,6 @@ public class CarController extends AbstractBaseController {
//用来解绑车辆
jcsFeign.getUserCar(car.getId(),car.getTeamId());
EquipmentSpecificSerivceImpl.registerMqttTopic(car.getIotCode(), equipmentIotMqttReceiveConfig);
Car oldCar = iCarService.getById(car.getId());
Car car1 = iCarService.updateOneById(car);
CarController controllerProxy = SpringUtils.getBean(CarController.class);
......@@ -363,30 +359,6 @@ public class CarController extends AbstractBaseController {
syncDataService.syncDeletedFireVehicle(carIds);
iCarService.dataSyncDeletedIds(carIds);
}
String[] topics = equipmentIotMqttReceiveConfig.adapter.getTopic();
boolean flag = false;
for (String id : idStrings) {
String iotCode = iCarService.getById(id).getIotCode();
if (StringUtil.isNotEmpty(iotCode)) {
String prefix = iotCode.substring(0, 8);
String suffix = iotCode.substring(8);
String oldTopic = prefix + "/" + suffix + "/property";
for (String topic : topics) {
if (topic.equals(oldTopic)) {
flag = true;
break;
}
}
if (flag) {
try {
equipmentIotMqttReceiveConfig.adapter.removeTopic(prefix + "/" + suffix + "/property");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
CarController controllerProxy = SpringUtils.getBean(CarController.class);
controllerProxy.refreshAllCount();
return new CommonResponse(SUCCESS);
......@@ -1099,33 +1071,11 @@ public class CarController extends AbstractBaseController {
public boolean delete(HttpServletRequest request, @RequestBody List<Long> idList) throws Exception {
List<Car> cars = iCarService.list(new QueryWrapper<Car>().in("id", idList));
String[] topics = equipmentIotMqttReceiveConfig.adapter.getTopic();
cars.forEach(car -> {
List<EquipmentOnCarAppVO> equipmentOnCarAppVOS = carMapper.selectEquipmentOnCarAppList(car.getId());
if (equipmentOnCarAppVOS.size() > 0) {
throw new BadRequest("有车载装备的车辆不能删除,请先卸载装备!");
}
boolean flag = false;
String iotCode = car.getIotCode();
if (StringUtil.isNotEmpty(car.getIotCode()) && iotCode.length() > 8) {
String prefix = iotCode.substring(0, 8);
String suffix = iotCode.substring(8);
String oldTopic = prefix + "/" + suffix + "/property";
for (String topic : topics) {
if (topic.equals(oldTopic)) {
flag = true;
break;
}
}
if (flag) {
try {
equipmentIotMqttReceiveConfig.adapter.removeTopic(prefix + "/" + suffix + "/property");
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
boolean flag = iCarService.removeOneByIds(idList);
if (flag) {
......
package com.yeejoin.equipmanage.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import com.yeejoin.equipmanage.common.entity.vo.EquiplistSpecificBySystemVO;
......@@ -226,6 +223,22 @@ public class EquipmentSpecificController extends AbstractBaseController {
}
/**
* 获取instanceId和orgCode
*
* @param sourceId
* @return
*/
@RequestMapping(value = "/getInstanceIdAndOrgCode", method = RequestMethod.GET)
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "获取instanceId和orgCode", notes = "获取instanceId和orgCode")
public ResponseModel getInstanceIdAndOrgCode(@RequestParam Long sourceId) {
if (Objects.isNull(sourceId)) {
return CommonResponseUtil.success(null);
}
return CommonResponseUtil.success(equipmentSpecificSerivce.getInstanceIdAndOrgCode(sourceId));
}
/**
* @param like 设备名称或编码code
* @param notLike wl_equipment_category,code不包含(右%),多个用英文逗号隔开
* @param status wl_stock_detail.status
......
package com.yeejoin.equipmanage.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.service.IFireAutoSysManageReportService;
import com.yeejoin.equipmanage.service.IFirePatrolReportService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
/**
* @author shg
* @date 2022-04-28
*/
@RestController
@Api(tags = "消防自动化综合管理报表Api")
@RequestMapping(value = "/fire-manage-report")
@Slf4j
public class FireAutoSysManageReportController extends BaseController {
@Autowired
IFireAutoSysManageReportService iFireAutoSysManageReportService;
@ApiOperation(value = "下载报表", notes = "下载报表")
@GetMapping(value = "/download")
@TycloudOperation(ApiLevel = UserType.PUBLIC, needAuth = false)
public void download(HttpServletRequest request, HttpServletResponse response,
@ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode,
@ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
iFireAutoSysManageReportService.download(request, response, stationCode, startDate, endDate);
}
@ApiOperation(value = "预览报表", notes = "预览报表")
@GetMapping(value = "/preview")
@TycloudOperation(ApiLevel = UserType.PUBLIC)
public String preview(
@ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode,
@ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
return iFireAutoSysManageReportService.preview(stationCode, startDate, endDate);
}
@SuppressWarnings("unchecked")
@ApiOperation(value = "所有站查询列表", notes = "所有站查询列表")
@GetMapping(value = "/allPage")
@TycloudOperation(ApiLevel = UserType.PUBLIC)
public IPage<AnalysisReportLogDto> allPage(Page page, @RequestParam Integer reportType,
@ApiParam(value = "开始日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate,
@ApiParam(value = "换流站编码") @RequestParam(required = false) String stationCode) {
return iFireAutoSysManageReportService.allPage(page, reportType, startDate, endDate, stationCode);
}
}
......@@ -30,7 +30,9 @@ public interface EquipmentSpecificAlarmLogMapper extends BaseMapper<EquipmentSpe
List<AppAlarmExtVo> findByIdListNoBuildId(@Param("list") List<Long> idBNullList);
List<EquipmentSpecificAlarmLog> getIsConfirmByAlarmId(@Param("equipmentSpecificId") Long equipmentSpecificId, @Param("equipmentSpecificIndexKey")String equipmentSpecificIndexKey,@Param("isConfirm") String isConfirm);
List<EquipmentSpecificAlarmLog> getIsConfirmByAlarmId(@Param("equipmentSpecificId") Long equipmentSpecificId
, @Param("equipmentSpecificIndexKey") String equipmentSpecificIndexKey
, @Param("isConfirm") String isConfirm);
List<FireEquipmentFireAlarm> getFireEquipAlarmLogDetailsById(@Param("list") List<Long> ids);
......
......@@ -5,6 +5,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -121,6 +122,8 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
FireEquipment getEquipSpecificDetail(Long id);
FireEquipmentVO getEquipSpecificDetail2(Long id);
List<EquipmentCategory> getEquipSpeTypeByQrcode(@Param("qrCode") String qrCode);
List<FireEquipment> getEquipSpecificDetailsByEquipmentId(Long equipmentId);
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.datasync.entity.FireEquipment;
import com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO;
import com.yeejoin.equipmanage.common.dto.EquipmentSpecificDto;
import com.yeejoin.equipmanage.common.dto.UserDto;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
......@@ -115,6 +116,14 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
*/
FireEquipment getEquipSpecificDetail(EquipmentSpecific equipmentSpecific);
/**
* 获取instanceId和orgCode
*
* @param sourceId
* @return
*/
FireEquipmentVO getInstanceIdAndOrgCode(Long sourceId);
void equipSpecificDataSync(Long equipmentId);
List<FireEquipment> getEquipSpecificDetailsByEquipmentId(Long equipmentId);
......
package com.yeejoin.equipmanage.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
public interface IFireAutoSysManageReportService {
void download(HttpServletRequest request, HttpServletResponse response, String code, Date startDate, Date endDate);
String preview(String code, Date startDate, Date endDate);
IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, Integer reportType, Date startDate, Date endDate, String stationCode);
}
......@@ -34,7 +34,6 @@ import com.yeejoin.equipmanage.operation.SyncRiskOperator;
import com.yeejoin.equipmanage.operation.factory.PageOperatorFactory;
import com.yeejoin.equipmanage.remote.RemoteSecurityService;
import com.yeejoin.equipmanage.service.*;
import liquibase.pro.packaged.S;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -48,7 +47,6 @@ import org.typroject.tyboot.core.foundation.exception.BaseException;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
......@@ -553,8 +551,8 @@ public class BuildingServiceImpl extends ServiceImpl<BuildingMapper, Building> i
return fireFightingSystemService.transferListToPointTree(responses, null,instanceId);
}
public List<PointTreeVo> getEquipTree(String bizOrgCode,String instanceId,String displayName) {
@Override
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) ){
......
......@@ -203,9 +203,9 @@ public class ConfirmAlarmServiceImpl extends ServiceImpl<ConfirmAlarmMapper, Equ
i = equipmentSpecificAlarmLogMapper.updateById(ent);
}else {
LambdaUpdateWrapper<EquipmentSpecificAlarmLog> updateWrapper = new LambdaUpdateWrapper<EquipmentSpecificAlarmLog>().
set(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()).
set(EquipmentSpecificAlarmLog::getConfirmDate,null).
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey());
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificId,ent.getEquipmentSpecificId()).
eq(EquipmentSpecificAlarmLog::getEquipmentSpecificIndexKey,ent.getEquipmentSpecificIndexKey())
.isNull(EquipmentSpecificAlarmLog::getConfirmDate);
i = equipmentSpecificAlarmLogMapper.update(ent, updateWrapper);
}
//int i = confirmAlarmMapper.confirmAlam(ent);
......
package com.yeejoin.equipmanage.service.impl;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.utils.SpringUtils;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.enums.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
......@@ -27,18 +24,41 @@ import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.equipmanage.common.entity.Equipment;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.entity.EquipmentIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentManageEntity;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecific;
import com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex;
import com.yeejoin.equipmanage.common.entity.EquipmentSystemSourceStatistics;
import com.yeejoin.equipmanage.common.entity.FireFightingSystemEntity;
import com.yeejoin.equipmanage.common.entity.Journal;
import com.yeejoin.equipmanage.common.entity.ManufacturerInfo;
import com.yeejoin.equipmanage.common.entity.Stock;
import com.yeejoin.equipmanage.common.entity.StockBill;
import com.yeejoin.equipmanage.common.entity.StockBillDetail;
import com.yeejoin.equipmanage.common.entity.StockDetail;
import com.yeejoin.equipmanage.common.entity.WarehouseStructure;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentSpecificVo;
import com.yeejoin.equipmanage.common.enums.BillContentEnum;
import com.yeejoin.equipmanage.common.enums.EquipStatusEnum;
import com.yeejoin.equipmanage.common.enums.JournalTypeEnum;
import com.yeejoin.equipmanage.common.enums.NoticeEnum;
import com.yeejoin.equipmanage.common.enums.StockBillTypeEnum;
import com.yeejoin.equipmanage.common.utils.ExcelUtils;
import com.yeejoin.equipmanage.common.utils.QRCodeUtil;
import com.yeejoin.equipmanage.common.utils.SpringUtils;
import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.StockDataVO;
import com.yeejoin.equipmanage.config.EquipmentIotMqttReceiveConfig;
import com.yeejoin.equipmanage.dto.EquipmentDetailDownloadTemplateDto;
import com.yeejoin.equipmanage.mapper.EquipmentDetailMapper;
import com.yeejoin.equipmanage.mapper.EquipmentMapper;
......@@ -96,8 +116,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
private ProductionQRCode equipmentProductionQRCode;
@Autowired
private IEquipmentSpecificIndexSerivce iEquipmentSpecificIndexSerivce;
@Autowired
EquipmentIotMqttReceiveConfig equipmentIotMqttReceiveConfig;
@Autowired
IManufacturerInfoService manufacturerInfoService;
......@@ -747,9 +766,6 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
if (!equipmentSpecificIndices.isEmpty()) {
iEquipmentSpecificIndexSerivce.saveBatch(equipmentSpecificIndices);
}
if (equipmentSpecific.getSingle() && StringUtil.isNotEmpty(equipmentSpecific.getIotCode())) {
EquipmentSpecificSerivceImpl.registerMqttTopic(equipmentSpecific.getIotCode(), equipmentIotMqttReceiveConfig);
}
}
@Override
......
......@@ -4,11 +4,15 @@ import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
import com.yeejoin.equipmanage.common.dto.OrgUsrDto;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.dto.VideoDTO;
import com.yeejoin.equipmanage.common.entity.dto.VideoSaveDto;
import com.yeejoin.equipmanage.common.entity.publics.BaseEntity;
import com.yeejoin.equipmanage.common.entity.vo.*;
import com.yeejoin.equipmanage.common.enums.EquipmentSpeIndexEnum;
import com.yeejoin.equipmanage.common.enums.IndustryEnum;
......@@ -361,6 +365,16 @@ public class VideoServiceImpl extends ServiceImpl<VideoMapper, Video> implements
static final Pattern urlPattern = Pattern.compile("^(((http)|(https)):\\/\\/)?([0-9]{1,3}.){3}[0-9]{1,3}(:[1-3]?[0-9]{1,4})?$");
private List<Long> getParents(Map<Long, Long> allMap, Long wsId) {
List<Long> parents = Lists.newLinkedList();
if (wsId != null && wsId != 0) {
parents.add(wsId);
parents.addAll(getParents(allMap, allMap.get(wsId)));
}
parents.remove(0L);
return parents;
}
@Override
@Transactional(rollbackFor = {Exception.class})
public List<Video> videoUpload(List<VideoDownloadVO> videoDownloadVOS) {
......@@ -374,8 +388,19 @@ public class VideoServiceImpl extends ServiceImpl<VideoMapper, Video> implements
// 获取所有的视频设备编号
Set<String> videoCodeSet = new HashSet(Bean.listToMap(this.baseMapper.selectList(new QueryWrapper<>()), "code", Video.class).keySet());
// 所有建筑列表
List<WarehouseStructure> allWarehouseStructureList =
warehouseStructureService.list().stream().filter(z -> StringUtil.isNotEmpty(z.getCode())).collect(Collectors.toList());
// 建筑对应父级建筑map
Map<Long, String> withParentMap = Maps.newHashMap();
if (!ValidationUtil.isEmpty(allWarehouseStructureList)) {
Map<Long, Long> allMap = allWarehouseStructureList.stream().collect(Collectors.toMap(BaseEntity::getId,
WarehouseStructure::getParentId));
allWarehouseStructureList.forEach(ws -> withParentMap.put(ws.getId(),
Joiner.on(",").join(getParents(allMap, ws.getId()))));
}
// 获取所有的建筑code与id对应关系
Map<String, Long> buildingMap = new HashMap(Bean.listToMap(warehouseStructureService.list().stream().filter(z -> StringUtil.isNotEmpty(z.getCode())).collect(Collectors.toList()), "code", "id", WarehouseStructure.class));
Map<String, Long> buildingMap = new HashMap(Bean.listToMap(allWarehouseStructureList, "code", "id", WarehouseStructure.class));
// 获取所有的装备code与id对应关系
Map<String, Long> equipMap = new HashMap(Bean.listToMap(equipmentSpecificSerivce.list().stream().filter(z -> StringUtil.isNotEmpty(z.getCode())).collect(Collectors.toList()), "code", "id", EquipmentSpecific.class));
// 获取所有重点设备code与id对应关系
......@@ -398,13 +423,13 @@ public class VideoServiceImpl extends ServiceImpl<VideoMapper, Video> implements
throw new RuntimeException("错误行" + rowNum + ":视频地址不能为空");
}
if (ValidationUtil.isEmpty(x.getType())) {
throw new RuntimeException("机构/部门编码不能为空,请修改后上传!");
throw new RuntimeException("视频类型(枪机/球机)不能为空,请修改后上传!");
}
if (ValidationUtil.isEmpty(x.getBizOrgCode())) {
throw new RuntimeException("机构/部门名称不能为空,请修改后上传!");
throw new RuntimeException("机构编码不能为空,请修改后上传!");
}
if (ValidationUtil.isEmpty(x.getBizOrgName())) {
throw new RuntimeException("视频类型为必填字段,请修改后上传!");
throw new RuntimeException("机构/部门名称不能为空,请修改后上传!");
}
// if (!urlPattern.matcher(x.getUrl().trim()).matches()) {
// throw new RuntimeException("错误行" + rowNum + ":视频地址格式有误,仅支持协议+ip+端口的格式");
......@@ -432,6 +457,7 @@ public class VideoServiceImpl extends ServiceImpl<VideoMapper, Video> implements
VideoSource videoSource = new VideoSource();
videoSource.setVideoId(video.getId());
videoSource.setSourceId(buildingMap.get(x.getBuildingCodes().trim()));
videoSource.setParentSourceIds(withParentMap.get(buildingMap.get(x.getBuildingCodes().trim())));
videoSources.add(videoSource);
}
// 处理监控和多个装备关系(1个摄像头对多个装备)
......
package com.yeejoin.amos.maintenance.business.controller;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.maintenance.business.feign.JCSFeignClient;
import com.yeejoin.amos.maintenance.business.param.PlanTaskPageParam;
import com.yeejoin.amos.maintenance.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.maintenance.business.service.intfc.IPointService;
......@@ -15,6 +16,7 @@ import com.yeejoin.amos.maintenance.common.enums.PlanTaskOrderByEnum;
import com.yeejoin.amos.maintenance.core.common.request.CommonPageable;
import com.yeejoin.amos.maintenance.core.common.request.CommonRequest;
import com.yeejoin.amos.maintenance.core.framework.PersonIdentify;
import com.yeejoin.amos.maintenance.core.util.StringUtil;
import com.yeejoin.amos.maintenance.exception.YeeException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -51,6 +53,9 @@ public class PlanTaskController extends AbstractBaseController {
@Autowired
IPointService pointService;
@Autowired
JCSFeignClient jcsFeignClient;
/**
* 计划执行查询
*
......@@ -203,6 +208,12 @@ public class PlanTaskController extends AbstractBaseController {
params.put("companyId", companyId);
params.put("orgCode", loginOrgCode);
params.put("userId", userId);
if (StringUtil.isNotEmpty(userId)) {
ResponseModel<String> idByAmosOrgId = jcsFeignClient.getIdByAmosOrgId(String.valueOf(userId));
if (StringUtil.isNotEmpty(idByAmosOrgId.getResult())) {
params.put("userId", idByAmosOrgId.getResult());
}
}
params.put("startTime", startTime);
params.put("endTime", endTime);
params.put("finishStatus", finishStatus);
......
......@@ -273,23 +273,23 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
log.info(strDate + " " + " 暂无待生成执行数据的计划");
return;
}
//bug 5980 待办任务消息应只触发执行中的任务,漏检的任务和未开始的任务不需要触发待办任务消息.
List<Plan> planListTwo = new ArrayList<>();
//将日期格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
LocalTime nowTime = LocalTime.parse(simpleDateFormat.format(new Date()));
for (Plan plan : planList) {
LocalTime dayTime = LocalTime.parse(plan.getDayTime());
// LocalTime plusHoursTime = dayTime.plusHours(1);
if (getTimeDifference(nowTime, dayTime)) {
planListTwo.add(plan);
}
}
if (planListTwo == null || planListTwo.size() <= 0) {
log.info(strDate + " " + " 暂无待生成执行数据的计划 (更改后,只执行进行中的数据)");
return;
}
planList = planListTwo;
// //bug 5980 待办任务消息应只触发执行中的任务,漏检的任务和未开始的任务不需要触发待办任务消息.
// List<Plan> planListTwo = new ArrayList<>();
// //将日期格式化
// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
// LocalTime nowTime = LocalTime.parse(simpleDateFormat.format(new Date()));
// for (Plan plan : planList) {
// LocalTime dayTime = LocalTime.parse(plan.getDayTime());
//// LocalTime plusHoursTime = dayTime.plusHours(1);
// if (getTimeDifference(nowTime, dayTime)) {
// planListTwo.add(plan);
// }
// }
// if (planListTwo == null || planListTwo.size() <= 0) {
// log.info(strDate + " " + " 暂无待生成执行数据的计划 (更改后,只执行进行中的数据)");
// return;
// }
// planList = planListTwo;
//2.循环遍历执行
HashMap<String, Object> paramMap = new HashMap<String, Object>();
for (Plan plan : planList) {
......
......@@ -801,6 +801,10 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
public void sendMessage(Plan plan) throws Exception {
Toke toke= remoteSecurityService.getServerToken();
RequestContext.setToken(toke.getToke());
RequestContext.setProduct(toke.getProduct());
RequestContext.setAppKey(toke.getAppKey());
// 查询检查对象对应防火监督负责人id
List<String> extraUserIds = Lists.newArrayList();
List<Point> pointList = pointMapper.getPointByPlanId(String.valueOf(plan.getId()));
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -14,6 +14,16 @@
and EXISTS (SELECT distinct fi.instance_id from wl_form_instance fi where fi.instance_id = sou.source_id)
limit 1
) AS sceneId,
(
SELECT
sou.source_id
FROM
wl_source_scene sou
WHERE
find_in_set(ala.equipment_specific_id,sou.point_in_scene)>0
and EXISTS (SELECT distinct fi.instance_id from wl_form_instance fi where fi.instance_id = sou.source_id)
limit 1
) AS sourceId,
ala.equipment_specific_id,
spe.code AS equipmentSpecificCode,
ala.equipment_specific_index_name,
......
......@@ -777,6 +777,21 @@
WHERE
es.id = #{id}
</select>
<select id="getEquipSpecificDetail2"
resultType="com.yeejoin.equipmanage.common.datasync.vo.FireEquipmentVO">
SELECT
ws.source_id AS buildid,
ws.parent_id AS parentId,
ws.biz_org_code AS bizOrgCode
FROM
wl_equipment_specific es
LEFT JOIN wl_stock_detail sd ON sd.equipment_specific_id = es.id
LEFT JOIN wl_warehouse_structure ws ON ws.id = sd.warehouse_structure_id
WHERE
es.id = #{id}
</select>
<select id="getEquipSpecificDetailsByEquipmentId"
resultType="com.yeejoin.equipmanage.common.datasync.entity.FireEquipment">
SELECT
......
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