Commit 3539ed33 authored by 李秀明's avatar 李秀明

fix(equip): 装备信息卡接口数据修改

parent 937b4a5d
......@@ -185,4 +185,28 @@ public class EquipmentDetail extends BaseEntity {
@TableField(exist = false)
private List<UploadFile> operation;
@TableField(exist = false)
@ApiModelProperty("二维码图片Base64")
private String qrCodeImage;
@TableField(exist = false)
@ApiModelProperty("到期应报废日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date scrapDate;
@TableField(exist = false)
@ApiModelProperty("剩余服役天数")
private Integer remainingDays;
@TableField(exist = false)
@ApiModelProperty("上次维修时间")
private Date lastRepairTime;
@TableField(exist = false)
@ApiModelProperty("下次维修时间")
private Date nextRepairTime;
@TableField(exist = false)
@ApiModelProperty("实时信号")
private String signal;
}
......@@ -10,6 +10,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author ZeHua Li
......@@ -60,7 +62,7 @@ public class EquipmentSpecific extends BaseEntity {
@ApiModelProperty(value = "所属单位id(来源于平台)")
@TableField("agency_id")
private String agencyId;
@ApiModelProperty(value = "所属单位名称(来源于平台)")
@TableField("agency_name")
private String agencyName;
......@@ -72,23 +74,23 @@ public class EquipmentSpecific extends BaseEntity {
@ApiModelProperty(value = "队伍名称(冗余字段来源于平台)")
@TableField("team_name")
private String teamName;
@ApiModelProperty(value = "实时指标名称")
@TableField("realtime_iot_index_name")
private String realtimeIotIndexName;
@ApiModelProperty(value = "实时指标编码")
@TableField("realtime_iot_index_key")
private String realtimeIotIndexKey;
@ApiModelProperty(value = "实时指标值")
@TableField("realtime_iot_index_value")
private String realtimeIotIndexValue;
@ApiModelProperty(value = "实时指标id(wl_equipment_specific_index_id)")
@TableField("realtime_iot_es_index_id")
private Long realtimeIotEsIndexId;
@ApiModelProperty(value = "指标id(wl_equipment_index_id)")
@TableField("realtime_iot_index_id")
private Long realtimeIotIndexId;
......@@ -96,12 +98,12 @@ public class EquipmentSpecific extends BaseEntity {
@ApiModelProperty(value = "实时指标更新时间")
@TableField("realtime_iot_index_update_date")
private Date realtimeIotIndexUpdateDate;
@ApiModelProperty(value = "物联设备实时状态,默认0表示正常(绿色#00ff00),1为故障类(黄色 #ffd500),2为火警类(红色#ff0000)")
@TableField("equip_status")
private String equipStatus="0";
@ApiModelProperty(value = "完整二维码")
@TableField(exist = false)
private String fullqrCode;
......@@ -186,4 +188,8 @@ public class EquipmentSpecific extends BaseEntity {
@ApiModelProperty(value = "指标单位")
@TableField(exist = false)
private String unit;
@ApiModelProperty(value = "指标参数")
@TableField(exist = false)
private List<Map<String, Object>> indexParameter;
}
......@@ -169,12 +169,26 @@ public class QRCodeUtil {
* @return String 图片base64
*/
public static String genQrCodeBase64PngWithWord(String text, int width, int height, String word, int wordHeight) {
return genQrCodeBase64PngWithWord(text, width, height, word, wordHeight, -1);
}
/**
* 生成带文字说明的二维码
*
* @param text 二维码内容
* @param width 二维码宽度
* @param height 二维码高度
* @param word 二维码下方文字说明
* @param wordHeight 二维码下方文字高度
* @return String 图片base64
*/
public static String genQrCodeBase64PngWithWord(String text, int width, int height, String word, int wordHeight, int type) {
ByteArrayOutputStream outputStream;
Base64.Encoder encoder;
try {
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
BufferedImage image = MatrixToImageWriter.toBufferedImage(bitMatrix);
BufferedImage image = type == -1 ? MatrixToImageWriter.toBufferedImage(bitMatrix) : toBufferedImage(bitMatrix, type);
BufferedImage outImage = null;
if (StringUtils.isNotBlank(word)) {
outImage = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR);
......@@ -191,7 +205,7 @@ public class QRCodeUtil {
//长度过长就截取超出二维码宽度部分换行
if (strWidth > width) {
String serialNum1 = word.substring(0, grow);
String serialNum2 = word.substring(grow, word.length());
String serialNum2 = word.substring(grow);
outg.drawString(serialNum1, 5, image.getHeight() + (outImage.getHeight() - image.getHeight()) / 2);
BufferedImage outImage2 = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D outg2 = outImage2.createGraphics();
......@@ -262,6 +276,30 @@ public class QRCodeUtil {
return null;
}
/**
* image流数据处理
*/
private static BufferedImage toBufferedImage(BitMatrix matrix, Integer type) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
if (1 == type) {
// 红色
image.setRGB(x, y, matrix.get(x, y) ? 0xDD4747 : 0xFFFFFFFF);
} else if (2 == type) {
// 黄色
image.setRGB(x, y, matrix.get(x, y) ? 0xEE854E : 0xFFFFFFFF);
} else {
// 绿色
image.setRGB(x, y, matrix.get(x, y) ? 0x2DBD8D : 0xFFFFFFFF);
}
}
}
return image;
}
public static void main(String[] args) {
System.out.println(genQrCodeBase64Png("101",100,100));
System.out.println(genQrCodeBase64PngWithWord("101",100,100,"sd",100));
......
package com.yeejoin.equipmanage.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
......@@ -15,6 +17,7 @@ import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO;
import com.yeejoin.equipmanage.common.enums.EquipQrcodeColorEnum;
import com.yeejoin.equipmanage.common.enums.ExcelEnums;
import com.yeejoin.equipmanage.common.enums.FileTypeEnum;
import com.yeejoin.equipmanage.common.enums.SourceTypeEnum;
import com.yeejoin.equipmanage.common.utils.*;
import com.yeejoin.equipmanage.common.vo.EquipmentDate;
......@@ -27,6 +30,7 @@ import com.yeejoin.equipmanage.utils.ExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.S;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -34,6 +38,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Async;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -216,29 +221,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public EquipmentDate selectequipmentDateById(@RequestParam Long id,
@RequestParam(required = false) Long stockDetailId) {
EquipmentDate equipmentDate = new EquipmentDate();
EquipmentSpecific equipmentSpecific = equipmentSpecificSerivce.getById(id);
equipmentSpecific.setFullqrCode("01#" + equipmentSpecific.getQrCode());
EquipmentDetail equipmentDetail = iEquipmentDetailService.getOneById(equipmentSpecific.getEquipmentDetailId());
StockDetail stockDetail = null;
if (stockDetailId != null) {
//解决灭火药剂,有多个货位状态问题
stockDetail = stockDetailMapper.selectById(stockDetailId);
equipmentSpecific.setStockDetail(stockDetail);
} else {
//消防装备默认分支
List<StockDetail> stockDetails = stockDetailMapper.selectList(new LambdaQueryWrapper<StockDetail>().eq(StockDetail::getEquipmentSpecificId, id));
if (!stockDetails.isEmpty()) {
stockDetail = stockDetails.get(0);
equipmentSpecific.setStockDetail(stockDetail);
}
}
if (stockDetail != null) {
equipmentSpecific.setStock(iStockService.getById(stockDetail.getStockId()));
}
equipmentDate.setEquipmentDetail(equipmentDetail);
equipmentDate.setEquipmentSpecific(equipmentSpecific);
return equipmentDate;
return iEquipmentDetailService.getEquipmentBasicInformation(id, stockDetailId);
}
@RequestMapping(value = "/selectequipmentDateByCode", method = RequestMethod.GET)
......@@ -828,5 +811,4 @@ public class EquipmentDetailController extends AbstractBaseController {
PermissionInterceptorContext.setDataAuthRule("fire_equip_info");
return ResponseHelper.buildResponse(reginParams);
}
}
......@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* Mapper 接口
......@@ -37,4 +38,6 @@ public interface EquipmentDetailMapper extends BaseMapper<EquipmentDetail> {
String checkDelete(Long id);
List<Long> getWareId(@Param("id") Long id);
Map<String, Object> selectEquipScrapDate(@Param("id") Long id);
}
......@@ -68,9 +68,9 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
List<PointTreeVo> getSceList(@Param("orgCode") String orgCode);
List<EquipmentSpecificIndex> getEquipMentStatus(@Param("id") String id);
List<EquipmentSpecificIndex> getEquipIndexLatestStatus();
/**
* 根据画布id获取画布绑定设备最新指标状态
* @param sceneId
......@@ -249,7 +249,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
List<Map<String,String>> getStationInfo();
List<Map<String, Object>> getFireMonitorInfo(@Param("equipmentId") Long fireEquipmentId, @Param("list") String[] strings);
List<Map<String, Object>> getFirePumpInfo(@Param("list") String[] strings,@Param("bizOrgCode") String bizOrgCode);
......@@ -281,7 +281,7 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
Map<String, Object> getStationCode(@Param("id")Long id);
EquipmentSpecific getEquipSpecificEntityByCode(@Param("code") String code);
Integer updateEquipSpecificStatus(String status,String id);
String getEquipStatusList(@Param("id") String id);
......@@ -311,12 +311,14 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
IPage<EquipTypeImgAmountVO> getMonitoringUnitList(@Param("page") IPage page,@Param("equipTypeAmountPage") EquipTypeAmountPageDTO equipTypeAmountPage);
List<Map<String, Object >> getMonitoringCount(String bizOrgCode);
String getEquipIdByCheckInputId(@Param(value = "id") String id);
Map<String, Object> getMonitoringEquip(String id);
Map<String, Object> getMonitoringOther(String id);
void updateEquipQrCode(List<String> ids, String status);
String selectEquipRealtimeSignal(@Param(value = "id") long id);
}
......@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
import com.yeejoin.equipmanage.common.entity.EquProperty;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.vo.EquipmentDate;
import java.util.List;
import java.util.Map;
/**
* 服务类
......@@ -27,7 +29,7 @@ public interface IEquipmentDetailService extends IService<EquipmentDetail> {
boolean removeOneById(long id);
Page<EquipmentDetail> page(Page<EquipmentDetail> pageBean, String category);
boolean removeBatchById(List<Long> idList);
boolean quotaUpdate( List<EquProperty> e);
......@@ -36,4 +38,8 @@ public interface IEquipmentDetailService extends IService<EquipmentDetail> {
String checkDelete( List<Long> ids);
List<OrgMenuDto> companyDeptTree();
Map<String, Object> getEquipScrapDate(long id);
EquipmentDate getEquipmentBasicInformation(Long id, Long stockDetailId);
}
......@@ -294,4 +294,6 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
* 赋码
*/
void updateEquipQrCode( List<Map<String, String>> ids, String status);
String getEquipRealtimeSignal(long id);
}
......@@ -2,8 +2,10 @@ package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
......@@ -11,19 +13,23 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.enums.BillContentEnum;
import com.yeejoin.equipmanage.common.enums.FileTypeEnum;
import com.yeejoin.equipmanage.common.utils.DateUtils;
import com.yeejoin.equipmanage.common.utils.QRCodeUtil;
import com.yeejoin.equipmanage.common.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.EquipmentDate;
import com.yeejoin.equipmanage.mapper.*;
import com.yeejoin.equipmanage.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.Bean;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -63,6 +69,24 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
@Autowired
private IUnitService iUnitService;
@Autowired
private IFireFightingSystemService fireFightingSystemService;
@Autowired
private IStockDetailService stockDetailService;
@Autowired
@Lazy
private IStockService stockService;
@Autowired
@Lazy
private IEquipmentSpecificSerivce equipmentSpecificService;
@Autowired
private IEquipmentIndexService equipmentIndexService;
@Lazy
@Autowired
private IUploadFileService iUploadFileService;
......@@ -137,6 +161,7 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
manufacturerInfo.setImg(manufacturerInfo.getImg());
}
equipmentDetail.setManufacturerInfo(manufacturerInfo);
equipmentDetail.setManufacturerName(Objects.isNull(manufacturerInfo) ? "" : manufacturerInfo.getName());
equipmentDetail.setImg(getEquipFileList(id, FileTypeEnum.image.toString()));
equipmentDetail.setVideo(getEquipFileList(id, FileTypeEnum.video.toString()));
equipmentDetail.setCertification(getEquipFileList(id, FileTypeEnum.certificate.toString()));
......@@ -311,5 +336,120 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
return jcsRemoteService.getCompanyDeptTreeWithAuth(authKey, null);
}
/**
* @param id
* @return
*/
@Override
public Map<String, Object> getEquipScrapDate(long id) {
return equipmentDetailMapper.selectEquipScrapDate(id);
}
/**
* 获取装备基本信息
*/
@Override
public EquipmentDate getEquipmentBasicInformation(Long id, Long stockDetailId) {
EquipmentDate equipmentDate = new EquipmentDate();
EquipmentSpecific equipmentSpecific = equipmentSpecificService.getById(id);
equipmentSpecific.setFullqrCode("01#" + equipmentSpecific.getQrCode());
EquipmentDetail equipmentDetail = this.getOneById(equipmentSpecific.getEquipmentDetailId());
StockDetail stockDetail = null;
if (stockDetailId != null) {
//解决灭火药剂,有多个货位状态问题
stockDetail = stockDetailService.getById(stockDetailId);
equipmentSpecific.setStockDetail(stockDetail);
} else {
//消防装备默认分支
List<StockDetail> stockDetails = stockDetailService.list(new LambdaQueryWrapper<StockDetail>().eq(StockDetail::getEquipmentSpecificId, id));
if (!stockDetails.isEmpty()) {
stockDetail = stockDetails.get(0);
equipmentSpecific.setStockDetail(stockDetail);
}
}
if (stockDetail != null) {
equipmentSpecific.setStock(stockService.getById(stockDetail.getStockId()));
}
// 到期应报废日期
Map<String, Object> scrapInfo = this.getEquipScrapDate(id);
if (Objects.nonNull(scrapInfo)) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String planScrapDate = scrapInfo.getOrDefault("planScrapDate", "").toString();
if (Objects.nonNull(planScrapDate)) {
try {
equipmentDetail.setScrapDate(dateFormat.parse(planScrapDate));
} catch (ParseException e) {
log.error("时间格式异常:", e);
}
}
// 剩余服役天数 = 报废日期 - 当前日期
String scrapDate = scrapInfo.getOrDefault("scrapDate", "").toString();
if (Objects.nonNull(scrapDate)) {
Date nowDate = DateUtils.getDateNow();
try {
Date date = dateFormat.parse(scrapDate);
int i = DateUtils.dateBetween(date, nowDate);
equipmentDetail.setRemainingDays(i);
} catch (ParseException e) {
log.error("时间格式异常:", e);
}
}
}
// 实时信号
String signal = equipmentSpecificService.getEquipRealtimeSignal(id);
equipmentDetail.setSignal(Objects.nonNull(signal) ? signal : "-");
// 二维码
String equipStatus = equipmentSpecific.getEquipStatus();
int type = Objects.equals(equipStatus, "0") ? 3 : 1;
String qrCodeImage = QRCodeUtil.genQrCodeBase64PngWithWord(equipmentSpecific.getQrCode(), 200, 200, equipmentSpecific.getQrCode(),200, type);
equipmentDetail.setQrCodeImage(qrCodeImage);
// 消防系统
FireFightingSystemEntity fireFightingSystem = fireFightingSystemService.getOneById(Long.valueOf(equipmentSpecific.getSystemId()));
equipmentSpecific.setSystemName(Objects.isNull(fireFightingSystem) ? "" : fireFightingSystem.getName());
// } // 1640241257290686465
// 装备分类
Equipment equipment = equipmentDetail.getEquipment();
if (Objects.nonNull(equipment)) {
EquipmentCategory equipmentCategory = equipment.getEquipmentCategory();
equipmentDetail.setCategoryName(equipmentCategory.getName());
}
// 装备单位
if(!ObjectUtils.isEmpty(equipmentSpecific.getRealtimeIotIndexId())){
EquipmentIndex equipmentIndex = equipmentIndexService.getById(equipmentSpecific.getRealtimeIotIndexId());
equipmentSpecific.setIsTrend(equipmentIndex.getIsTrend());
equipmentSpecific.setUnit(equipmentIndex.getUnit());
}
// 查询指标参数
Wrapper<EquipmentSpecificIndex> equipmentSpecificIndexWrapper = Wrappers.<EquipmentSpecificIndex>lambdaQuery().eq(EquipmentSpecificIndex::getEquipmentSpecificId, id);
List<EquipmentSpecificIndex> equipIndexList = equipmentSpecificIndexSerivce.list(equipmentSpecificIndexWrapper);
List<Map<String, Object>> indexMaps = new ArrayList<>();
if (!CollectionUtils.isEmpty(equipIndexList)) {
equipIndexList.forEach(v -> {
Map<String, Object> indexMap = new LinkedHashMap<>();
indexMap.put("equipmentIndexName", v.getEquipmentIndexName());
indexMap.put("indexValue", handleIndexValue(v.getValue()));
indexMaps.add(indexMap);
});
}
equipmentSpecific.setIndexParameter(indexMaps);
equipmentDate.setEquipmentDetail(equipmentDetail);
equipmentDate.setEquipmentSpecific(equipmentSpecific);
return equipmentDate;
}
private String handleIndexValue(Object indexValue) {
if (!ObjectUtils.isEmpty(indexValue)) {
String val = String.valueOf(indexValue).toUpperCase();
switch (val) {
case "TRUE":
return "是";
case "FALSE":
return "否";
default:
return val;
}
}
return "";
}
}
......@@ -94,7 +94,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
IStockBillDetailService stockBillDetailService;
@Autowired
IStockBillService stockBillService;
@Autowired
EquipmentSpecificAlarmMapper equipmentSpecificAlarmMapper;
@Autowired
......@@ -203,7 +203,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
@Value("${systemctl.sync.switch}")
private Boolean syncSwitch;
@Value("${window.vedioFormat}")
String vedioFormat;
......@@ -1082,7 +1082,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
}
}
public void delEquipmentSpecificSyncData(Long id){
//数据同步
syncDataService.syncDeletedEquipmentSpecific(Arrays.asList(id));
......@@ -1690,7 +1690,7 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
// 已入库
this.baseMapper.deleteEquipDataByStockDetailId(stockDetail.getId(), specificId);
}
if (syncSwitch) {
//数据同步
delEquipmentSpecificSyncData(specificId);
......@@ -2192,4 +2192,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
idxFeign.cleanQrcode(specificIndexId, equipId, "equip");
}
}
@Override
public String getEquipRealtimeSignal(long id) {
return equipmentSpecificMapper.selectEquipRealtimeSignal(id);
}
}
......@@ -170,4 +170,18 @@
or parent_id = #{id}
)
</select>
<select id="selectEquipScrapDate" resultType="java.util.Map">
SELECT
DATE_ADD(DATE_FORMAT(ed.production_date, '%Y-%m-%d'), INTERVAL e.expiry_date YEAR) AS planScrapDate,
spd.create_date AS scrapDate
FROM
wl_equipment_specific es
LEFT JOIN wl_equipment_detail ed ON ed.id = es.equipment_detail_id
LEFT JOIN wl_equipment e ON e.id = ed.equipment_id
LEFT JOIN wl_stock_detail skd ON skd.equipment_detail_id = es.equipment_detail_id
LEFT JOIN wl_scrap_detail spd ON spd.stock_detail_id = skd.id
WHERE
es.id = #{id}
</select>
</mapper>
......@@ -305,7 +305,7 @@
AND value is not null
ORDER BY spein.update_date DESC
</select>
<select id="getEquipIndexLatestStatus" resultType="com.yeejoin.equipmanage.common.entity.EquipmentSpecificIndex">
SELECT
equipindex.`value`,
......@@ -346,7 +346,7 @@
equipindex.equipment_specific_id = es.id
AND equipindex.equipment_index_id = ei.id
</select>
<select id="getStatusAll" resultType="java.util.HashMap">
select COUNT(id) num, wl_video_equipment_specific.equipment_specific_id as id from wl_video_equipment_specific where find_in_set(
......@@ -392,7 +392,7 @@
)
)
</select>
<select id="getEquipmentIotCodeLists" resultType="String">
SELECT
iot_code
......@@ -1192,7 +1192,7 @@
AND
<foreach collection="vo.codes" item="item" index="index" open="(" close=")" separator=" AND ">
ec.`code` NOT LIKE CONCAT(#{item}, '%')
</foreach>
</foreach>
</if> -->
<if test="vo.teamId != null and vo.teamId != ''">
AND es.`team_id` = #{vo.teamId}
......@@ -1420,7 +1420,7 @@
</if>
</where>
</select>
<select id="getEquipSpeInfo" resultType="Map">
SELECT
es.id,
......@@ -2692,4 +2692,19 @@
</foreach>
</update>
<select id="selectEquipRealtimeSignal" resultType="string">
SELECT
ei.type_name AS typeName
FROM
wl_equipment_specific_index esi
RIGHT JOIN wl_equipment_index ei ON ei.id = esi.equipment_index_id
WHERE
esi.equipment_specific_id = #{id}
AND esi.`value` = 'true'
AND esi.is_alarm = 1
ORDER BY
esi.update_date DESC
LIMIT 1
</select>
</mapper>
\ No newline at end of file
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