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

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

parent 937b4a5d
...@@ -185,4 +185,28 @@ public class EquipmentDetail extends BaseEntity { ...@@ -185,4 +185,28 @@ public class EquipmentDetail extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<UploadFile> operation; 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; ...@@ -10,6 +10,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* @author ZeHua Li * @author ZeHua Li
...@@ -186,4 +188,8 @@ public class EquipmentSpecific extends BaseEntity { ...@@ -186,4 +188,8 @@ public class EquipmentSpecific extends BaseEntity {
@ApiModelProperty(value = "指标单位") @ApiModelProperty(value = "指标单位")
@TableField(exist = false) @TableField(exist = false)
private String unit; private String unit;
@ApiModelProperty(value = "指标参数")
@TableField(exist = false)
private List<Map<String, Object>> indexParameter;
} }
...@@ -169,12 +169,26 @@ public class QRCodeUtil { ...@@ -169,12 +169,26 @@ public class QRCodeUtil {
* @return String 图片base64 * @return String 图片base64
*/ */
public static String genQrCodeBase64PngWithWord(String text, int width, int height, String word, int wordHeight) { 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; ByteArrayOutputStream outputStream;
Base64.Encoder encoder; Base64.Encoder encoder;
try { try {
QRCodeWriter qrCodeWriter = new QRCodeWriter(); QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height); 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; BufferedImage outImage = null;
if (StringUtils.isNotBlank(word)) { if (StringUtils.isNotBlank(word)) {
outImage = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR); outImage = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR);
...@@ -191,7 +205,7 @@ public class QRCodeUtil { ...@@ -191,7 +205,7 @@ public class QRCodeUtil {
//长度过长就截取超出二维码宽度部分换行 //长度过长就截取超出二维码宽度部分换行
if (strWidth > width) { if (strWidth > width) {
String serialNum1 = word.substring(0, grow); 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); outg.drawString(serialNum1, 5, image.getHeight() + (outImage.getHeight() - image.getHeight()) / 2);
BufferedImage outImage2 = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR); BufferedImage outImage2 = new BufferedImage(width, wordHeight, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D outg2 = outImage2.createGraphics(); Graphics2D outg2 = outImage2.createGraphics();
...@@ -262,6 +276,30 @@ public class QRCodeUtil { ...@@ -262,6 +276,30 @@ public class QRCodeUtil {
return null; 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) { public static void main(String[] args) {
System.out.println(genQrCodeBase64Png("101",100,100)); System.out.println(genQrCodeBase64Png("101",100,100));
System.out.println(genQrCodeBase64PngWithWord("101",100,100,"sd",100)); System.out.println(genQrCodeBase64PngWithWord("101",100,100,"sd",100));
......
package com.yeejoin.equipmanage.controller; package com.yeejoin.equipmanage.controller;
import com.alibaba.fastjson.JSONObject; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto; import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
...@@ -15,6 +17,7 @@ import com.yeejoin.equipmanage.common.entity.*; ...@@ -15,6 +17,7 @@ import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO; import com.yeejoin.equipmanage.common.entity.vo.EquipmentDetailDownloadVO;
import com.yeejoin.equipmanage.common.enums.EquipQrcodeColorEnum; import com.yeejoin.equipmanage.common.enums.EquipQrcodeColorEnum;
import com.yeejoin.equipmanage.common.enums.ExcelEnums; 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.enums.SourceTypeEnum;
import com.yeejoin.equipmanage.common.utils.*; import com.yeejoin.equipmanage.common.utils.*;
import com.yeejoin.equipmanage.common.vo.EquipmentDate; import com.yeejoin.equipmanage.common.vo.EquipmentDate;
...@@ -27,6 +30,7 @@ import com.yeejoin.equipmanage.utils.ExcelUtil; ...@@ -27,6 +30,7 @@ import com.yeejoin.equipmanage.utils.ExcelUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import liquibase.pro.packaged.S;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -34,6 +38,7 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -34,6 +38,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -216,29 +221,7 @@ public class EquipmentDetailController extends AbstractBaseController { ...@@ -216,29 +221,7 @@ public class EquipmentDetailController extends AbstractBaseController {
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询") @ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public EquipmentDate selectequipmentDateById(@RequestParam Long id, public EquipmentDate selectequipmentDateById(@RequestParam Long id,
@RequestParam(required = false) Long stockDetailId) { @RequestParam(required = false) Long stockDetailId) {
EquipmentDate equipmentDate = new EquipmentDate(); return iEquipmentDetailService.getEquipmentBasicInformation(id, stockDetailId);
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;
} }
@RequestMapping(value = "/selectequipmentDateByCode", method = RequestMethod.GET) @RequestMapping(value = "/selectequipmentDateByCode", method = RequestMethod.GET)
...@@ -828,5 +811,4 @@ public class EquipmentDetailController extends AbstractBaseController { ...@@ -828,5 +811,4 @@ public class EquipmentDetailController extends AbstractBaseController {
PermissionInterceptorContext.setDataAuthRule("fire_equip_info"); PermissionInterceptorContext.setDataAuthRule("fire_equip_info");
return ResponseHelper.buildResponse(reginParams); return ResponseHelper.buildResponse(reginParams);
} }
} }
...@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper; ...@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Mapper 接口 * Mapper 接口
...@@ -37,4 +38,6 @@ public interface EquipmentDetailMapper extends BaseMapper<EquipmentDetail> { ...@@ -37,4 +38,6 @@ public interface EquipmentDetailMapper extends BaseMapper<EquipmentDetail> {
String checkDelete(Long id); String checkDelete(Long id);
List<Long> getWareId(@Param("id") Long id); List<Long> getWareId(@Param("id") Long id);
Map<String, Object> selectEquipScrapDate(@Param("id") Long id);
} }
...@@ -319,4 +319,6 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> { ...@@ -319,4 +319,6 @@ public interface EquipmentSpecificMapper extends BaseMapper<EquipmentSpecific> {
Map<String, Object> getMonitoringOther(String id); Map<String, Object> getMonitoringOther(String id);
void updateEquipQrCode(List<String> ids, String status); 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; ...@@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto; import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
import com.yeejoin.equipmanage.common.entity.EquProperty; import com.yeejoin.equipmanage.common.entity.EquProperty;
import com.yeejoin.equipmanage.common.entity.EquipmentDetail; import com.yeejoin.equipmanage.common.entity.EquipmentDetail;
import com.yeejoin.equipmanage.common.vo.EquipmentDate;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 服务类 * 服务类
...@@ -36,4 +38,8 @@ public interface IEquipmentDetailService extends IService<EquipmentDetail> { ...@@ -36,4 +38,8 @@ public interface IEquipmentDetailService extends IService<EquipmentDetail> {
String checkDelete( List<Long> ids); String checkDelete( List<Long> ids);
List<OrgMenuDto> companyDeptTree(); 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> { ...@@ -294,4 +294,6 @@ public interface IEquipmentSpecificSerivce extends IService<EquipmentSpecific> {
* 赋码 * 赋码
*/ */
void updateEquipQrCode( List<Map<String, String>> ids, String status); void updateEquipQrCode( List<Map<String, String>> ids, String status);
String getEquipRealtimeSignal(long id);
} }
...@@ -2,8 +2,10 @@ package com.yeejoin.equipmanage.service.impl; ...@@ -2,8 +2,10 @@ package com.yeejoin.equipmanage.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto; import com.yeejoin.amos.boot.biz.common.dto.OrgMenuDto;
...@@ -11,19 +13,23 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; ...@@ -11,19 +13,23 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.equipmanage.common.entity.*; import com.yeejoin.equipmanage.common.entity.*;
import com.yeejoin.equipmanage.common.enums.BillContentEnum; import com.yeejoin.equipmanage.common.enums.BillContentEnum;
import com.yeejoin.equipmanage.common.enums.FileTypeEnum; 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.utils.StringUtil;
import com.yeejoin.equipmanage.common.vo.EquipmentDate;
import com.yeejoin.equipmanage.mapper.*; import com.yeejoin.equipmanage.mapper.*;
import com.yeejoin.equipmanage.service.*; import com.yeejoin.equipmanage.service.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import java.util.ArrayList; import java.text.ParseException;
import java.util.HashMap; import java.text.SimpleDateFormat;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -63,6 +69,24 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe ...@@ -63,6 +69,24 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
@Autowired @Autowired
private IUnitService iUnitService; 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 @Lazy
@Autowired @Autowired
private IUploadFileService iUploadFileService; private IUploadFileService iUploadFileService;
...@@ -137,6 +161,7 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe ...@@ -137,6 +161,7 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
manufacturerInfo.setImg(manufacturerInfo.getImg()); manufacturerInfo.setImg(manufacturerInfo.getImg());
} }
equipmentDetail.setManufacturerInfo(manufacturerInfo); equipmentDetail.setManufacturerInfo(manufacturerInfo);
equipmentDetail.setManufacturerName(Objects.isNull(manufacturerInfo) ? "" : manufacturerInfo.getName());
equipmentDetail.setImg(getEquipFileList(id, FileTypeEnum.image.toString())); equipmentDetail.setImg(getEquipFileList(id, FileTypeEnum.image.toString()));
equipmentDetail.setVideo(getEquipFileList(id, FileTypeEnum.video.toString())); equipmentDetail.setVideo(getEquipFileList(id, FileTypeEnum.video.toString()));
equipmentDetail.setCertification(getEquipFileList(id, FileTypeEnum.certificate.toString())); equipmentDetail.setCertification(getEquipFileList(id, FileTypeEnum.certificate.toString()));
...@@ -311,5 +336,120 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe ...@@ -311,5 +336,120 @@ public class EquipmentDetailServiceImpl extends ServiceImpl<EquipmentDetailMappe
return jcsRemoteService.getCompanyDeptTreeWithAuth(authKey, null); 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 "";
}
} }
...@@ -2192,4 +2192,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM ...@@ -2192,4 +2192,9 @@ public class EquipmentSpecificSerivceImpl extends ServiceImpl<EquipmentSpecificM
idxFeign.cleanQrcode(specificIndexId, equipId, "equip"); idxFeign.cleanQrcode(specificIndexId, equipId, "equip");
} }
} }
@Override
public String getEquipRealtimeSignal(long id) {
return equipmentSpecificMapper.selectEquipRealtimeSignal(id);
}
} }
...@@ -170,4 +170,18 @@ ...@@ -170,4 +170,18 @@
or parent_id = #{id} or parent_id = #{id}
) )
</select> </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> </mapper>
...@@ -2692,4 +2692,19 @@ ...@@ -2692,4 +2692,19 @@
</foreach> </foreach>
</update> </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> </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