feat: 软件版本归并率统计

master
李小林 7 months ago
parent d4d7d9995a
commit b315b3a045
  1. 6
      src/main/java/com/bellmann/controller/DeviceTypeVerController.java
  2. 20
      src/main/java/com/bellmann/controller/ReportController.java
  3. 13
      src/main/java/com/bellmann/mapper/DeviceStaticMapper.java
  4. 2
      src/main/java/com/bellmann/mapper/DeviceTypeVerMapper.java
  5. 13
      src/main/java/com/bellmann/model/bo/MergeSoftBO.java
  6. 24
      src/main/java/com/bellmann/model/query/SoftMergeReportQuery.java
  7. 27
      src/main/java/com/bellmann/model/vo/SoftVerMergeExportVO.java
  8. 25
      src/main/java/com/bellmann/model/vo/SoftVerMergeVO.java
  9. 3
      src/main/java/com/bellmann/service/DeviceTypeVerService.java
  10. 5
      src/main/java/com/bellmann/service/ReportService.java
  11. 12
      src/main/java/com/bellmann/service/impl/DeviceTypeVerServiceImpl.java
  12. 73
      src/main/java/com/bellmann/service/impl/ReportServiceImpl.java
  13. 121
      src/main/resources/mapper/DeviceStaticMapper.xml
  14. 10
      src/main/resources/mapper/DeviceTypeVerMapper.xml
  15. 4
      src/main/resources/mapper/ViewDeviceTotalMapper.xml

@ -157,4 +157,10 @@ public class DeviceTypeVerController {
List<Option<String>> list = deviceTypeVerService.softVerOption(); List<Option<String>> list = deviceTypeVerService.softVerOption();
return Result.success(list); return Result.success(list);
} }
@GetMapping("/merge-soft-ver-option")
@Operation(summary = "查找设备归并软件版本选择框")
public Result<List<Option<String>>> mergeSoftVerOption(){
List<Option<String>> list = deviceTypeVerService.mergeSoftVerOption();
return Result.success(list);
}
} }

@ -6,6 +6,7 @@ import com.bellmann.common.result.PageResult;
import com.bellmann.common.result.Result; import com.bellmann.common.result.Result;
import com.bellmann.model.query.DeviceTypeHardSoftReportQuery; import com.bellmann.model.query.DeviceTypeHardSoftReportQuery;
import com.bellmann.model.query.ReportBasicQuery; import com.bellmann.model.query.ReportBasicQuery;
import com.bellmann.model.query.SoftMergeReportQuery;
import com.bellmann.model.vo.*; import com.bellmann.model.vo.*;
import com.bellmann.plugin.dupsubmit.annotation.PreventDuplicateSubmit; import com.bellmann.plugin.dupsubmit.annotation.PreventDuplicateSubmit;
import com.bellmann.service.ReportService; import com.bellmann.service.ReportService;
@ -87,4 +88,23 @@ public class ReportController {
EasyExcel.write(response.getOutputStream(), DeviceTypeHardSoftVerExportVO.class).sheet("设备类型及软硬件版本统计报表") EasyExcel.write(response.getOutputStream(), DeviceTypeHardSoftVerExportVO.class).sheet("设备类型及软硬件版本统计报表")
.doWrite(list); .doWrite(list);
} }
@PostMapping("/device-type-soft-merge")
@Operation(summary = "软件归并率统计")
@PreventDuplicateSubmit
public PageResult<SoftVerMergeVO> softVerMergeStatistics(@RequestBody SoftMergeReportQuery query){
Page<SoftVerMergeVO> page = reportService.softVerMergeStatistics(query);
return PageResult.success(page);
}
@GetMapping("/_export/soft-ver-merge")
@PreventDuplicateSubmit
public void exportSoftMergeVer(SoftMergeReportQuery queryParams, HttpServletResponse response) throws IOException {
String fileName = "软件版本归并率统计报表.xlsx";
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
List<SoftVerMergeExportVO> list = reportService.listExportSoftMerge(queryParams);
EasyExcel.write(response.getOutputStream(), SoftVerMergeExportVO.class).sheet("软件版本归并率统计报表")
.doWrite(list);
}
} }

@ -2,13 +2,13 @@ package com.bellmann.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.bo.DevOnlineStatus; import com.bellmann.model.bo.*;
import com.bellmann.model.bo.DeviceDetailBO;
import com.bellmann.model.bo.EquipmentBO;
import com.bellmann.model.bo.RemoteEquipmentBO;
import com.bellmann.model.dto.DeviceDetail; import com.bellmann.model.dto.DeviceDetail;
import com.bellmann.model.entity.DeviceStatic; import com.bellmann.model.entity.DeviceStatic;
import com.bellmann.model.query.SoftMergeReportQuery;
import com.bellmann.model.vo.EquipmentDetailVO; import com.bellmann.model.vo.EquipmentDetailVO;
import com.bellmann.model.vo.SoftVerMergeExportVO;
import com.bellmann.model.vo.SoftVerMergeVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -36,4 +36,9 @@ public interface DeviceStaticMapper extends BaseMapper<DeviceStatic> {
String getLogicIdByDevId(@Param("devId") Long devId); String getLogicIdByDevId(@Param("devId") Long devId);
Page<SoftVerMergeVO> getSoftListReportPage(Page<SoftVerMergeVO> page, @Param("form") SoftMergeReportQuery queryParams);
MergeSoftBO getDeviceSoft(@Param("category") String category, @Param("devName") String devName, @Param("devHard") String devHard, @Param("query") SoftMergeReportQuery queryParams);
Page<SoftVerMergeExportVO> exportSoftMergePage(Page<SoftVerMergeExportVO> page,@Param("form") SoftMergeReportQuery queryParams);
} }

@ -35,4 +35,6 @@ public interface DeviceTypeVerMapper extends BaseMapper<DeviceTypeVer> {
List<SoftVersionUpgradeVO> upgradeSoftVerTable(@Param("devId") Long devId); List<SoftVersionUpgradeVO> upgradeSoftVerTable(@Param("devId") Long devId);
List<String> softVerOption(); List<String> softVerOption();
List<String> mergeSoftVerOption();
} }

@ -0,0 +1,13 @@
package com.bellmann.model.bo;
import lombok.Data;
@Data
public class MergeSoftBO {
private Long typeAndVerId;
private String softVer;
private Integer softCount;
}

@ -0,0 +1,24 @@
package com.bellmann.model.query;
import com.bellmann.common.base.BasePageQuery;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class SoftMergeReportQuery extends BasePageQuery {
private Long area;
private String devName;
private String devHardVer;
private String category;
private String softVer;
private String onLineStartTime;
private String onLineEndTime;
}

@ -0,0 +1,27 @@
package com.bellmann.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
@ColumnWidth(20)
public class SoftVerMergeExportVO {
@ExcelProperty(value = "厂商")
private String category;
@ExcelProperty(value = "设备型号")
private String devName;
@ExcelProperty(value = "硬件版本")
private String devHard;
@ExcelProperty(value = "终端数量")
private Integer hardCount;
@ExcelProperty(value = "软件版本")
private String softVer;
@ExcelProperty(value = "归并版本数")
private Integer softCount;
@ExcelProperty(value = "设备类型")
private String devType;
@ExcelProperty(value = "归并率")
private String softAvg;
}

@ -0,0 +1,25 @@
package com.bellmann.model.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "软件归并率统计")
public class SoftVerMergeVO {
private String category;
private String devName;
private String devHard;
private Integer hardCount;
private String softVer;
private Integer softCount;
private String devType;
private String softAvg;
}

@ -53,4 +53,7 @@ public interface DeviceTypeVerService {
List<SoftVersionUpgradeVO> upgradeSoftVerTable(Long devId); List<SoftVersionUpgradeVO> upgradeSoftVerTable(Long devId);
List<Option<String>> softVerOption(); List<Option<String>> softVerOption();
List<Option<String>> mergeSoftVerOption();
} }

@ -3,6 +3,7 @@ package com.bellmann.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.model.query.DeviceTypeHardSoftReportQuery; import com.bellmann.model.query.DeviceTypeHardSoftReportQuery;
import com.bellmann.model.query.ReportBasicQuery; import com.bellmann.model.query.ReportBasicQuery;
import com.bellmann.model.query.SoftMergeReportQuery;
import com.bellmann.model.vo.*; import com.bellmann.model.vo.*;
import java.util.List; import java.util.List;
@ -19,4 +20,8 @@ public interface ReportService {
List<DeviceTypeHardSoftVerVO> devTypeSoftVerStatistics(DeviceTypeHardSoftReportQuery query); List<DeviceTypeHardSoftVerVO> devTypeSoftVerStatistics(DeviceTypeHardSoftReportQuery query);
List<DeviceTypeHardSoftVerExportVO> listExportDeviceTypeHardSoftVer(DeviceTypeHardSoftReportQuery queryParams); List<DeviceTypeHardSoftVerExportVO> listExportDeviceTypeHardSoftVer(DeviceTypeHardSoftReportQuery queryParams);
Page<SoftVerMergeVO> softVerMergeStatistics(SoftMergeReportQuery query);
List<SoftVerMergeExportVO> listExportSoftMerge(SoftMergeReportQuery queryParams);
} }

@ -394,4 +394,16 @@ public class DeviceTypeVerServiceImpl implements DeviceTypeVerService {
return option; return option;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
@Override
public List<Option<String>> mergeSoftVerOption() {
List<String> list = deviceTypeVerMapper.mergeSoftVerOption();
return list.stream().map(str -> {
Option<String> option = new Option<>();
option.setLabel(str);
option.setValue(str);
return option;
}).collect(Collectors.toList());
}
} }

@ -1,5 +1,6 @@
package com.bellmann.service.impl; package com.bellmann.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bellmann.common.base.IBaseEnum; import com.bellmann.common.base.IBaseEnum;
import com.bellmann.common.enums.DevAccessTypeEnum; import com.bellmann.common.enums.DevAccessTypeEnum;
@ -7,14 +8,20 @@ import com.bellmann.common.enums.EquipmentTypeEnum;
import com.bellmann.converter.DeviceStaticConverter; import com.bellmann.converter.DeviceStaticConverter;
import com.bellmann.manger.ServiceManager; import com.bellmann.manger.ServiceManager;
import com.bellmann.mapper.DeviceStaticMapper; import com.bellmann.mapper.DeviceStaticMapper;
import com.bellmann.mapper.DeviceTypeVerDetailMapper;
import com.bellmann.mapper.ViewDeviceTotalMapper; import com.bellmann.mapper.ViewDeviceTotalMapper;
import com.bellmann.model.bo.MergeSoftBO;
import com.bellmann.model.entity.DeviceTypeVerDetail;
import com.bellmann.model.query.DeviceTypeHardSoftReportQuery; import com.bellmann.model.query.DeviceTypeHardSoftReportQuery;
import com.bellmann.model.query.ReportBasicQuery; import com.bellmann.model.query.ReportBasicQuery;
import com.bellmann.model.query.SoftMergeReportQuery;
import com.bellmann.model.vo.*; import com.bellmann.model.vo.*;
import com.bellmann.service.ReportService; import com.bellmann.service.ReportService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Service @Service
@ -27,6 +34,8 @@ public class ReportServiceImpl implements ReportService {
private final ServiceManager serviceManager; private final ServiceManager serviceManager;
private final DeviceStaticConverter deviceStaticConverter; private final DeviceStaticConverter deviceStaticConverter;
private final DeviceTypeVerDetailMapper deviceTypeVerDetailMapper;
@Override @Override
public Page<DetailInventoryStatisticsVO> detailPage(ReportBasicQuery query) { public Page<DetailInventoryStatisticsVO> detailPage(ReportBasicQuery query) {
int pageNum = query.getPageNum(); int pageNum = query.getPageNum();
@ -107,4 +116,68 @@ public class ReportServiceImpl implements ReportService {
public List<DeviceTypeHardSoftVerExportVO> listExportDeviceTypeHardSoftVer(DeviceTypeHardSoftReportQuery queryParams) { public List<DeviceTypeHardSoftVerExportVO> listExportDeviceTypeHardSoftVer(DeviceTypeHardSoftReportQuery queryParams) {
return viewDeviceTotalMapper.listExportDeviceTypeHardSoftVer(queryParams); return viewDeviceTotalMapper.listExportDeviceTypeHardSoftVer(queryParams);
} }
@Override
public Page<SoftVerMergeVO> softVerMergeStatistics(SoftMergeReportQuery queryParams) {
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<SoftVerMergeVO> page = new Page<>(pageNum,pageSize);
Page<SoftVerMergeVO> mergePage = deviceStaticMapper.getSoftListReportPage(page,queryParams);
List<SoftVerMergeVO> records = mergePage.getRecords();
if (records.isEmpty()){
return mergePage;
}
records.forEach(obj->{
MergeSoftBO merge = deviceStaticMapper.getDeviceSoft(obj.getCategory(),obj.getDevName(),obj.getDevHard(),queryParams);
if (merge!=null) {
DeviceTypeVerDetail deviceTypeVerDetail = deviceTypeVerDetailMapper.selectOne(new LambdaQueryWrapper<DeviceTypeVerDetail>()
.eq(DeviceTypeVerDetail::getTypeAndVerId, merge.getTypeAndVerId())
);
if (deviceTypeVerDetail != null) {
obj.setDevType(IBaseEnum.getLabelByValue(deviceTypeVerDetail.getDevTypeName(), EquipmentTypeEnum.class));
}
obj.setSoftVer( merge.getSoftVer());
obj.setSoftCount(merge.getSoftCount());
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
String avg = decimalFormat.format((float) Long.valueOf(merge.getSoftCount()) / (float) Long.valueOf(obj.getHardCount()));
obj.setSoftAvg(avg);
}else {
obj.setSoftCount(0);
obj.setSoftAvg("0.00%");
}
});
return mergePage.setRecords(records);
}
@Override
public List<SoftVerMergeExportVO> listExportSoftMerge(SoftMergeReportQuery queryParams) {
int pageNum = queryParams.getPageNum();
int pageSize = queryParams.getPageSize();
Page<SoftVerMergeExportVO> page = new Page<>(pageNum,pageSize);
Page<SoftVerMergeExportVO> exportVOPage = deviceStaticMapper.exportSoftMergePage(page,queryParams);
List<SoftVerMergeExportVO> records = exportVOPage.getRecords();
if (records.isEmpty()){
return new ArrayList<>();
}
records.forEach(obj->{
MergeSoftBO merge = deviceStaticMapper.getDeviceSoft(obj.getCategory(),obj.getDevName(),obj.getDevHard(),queryParams);
if (merge!=null) {
DeviceTypeVerDetail deviceTypeVerDetail = deviceTypeVerDetailMapper.selectOne(new LambdaQueryWrapper<DeviceTypeVerDetail>()
.eq(DeviceTypeVerDetail::getTypeAndVerId, merge.getTypeAndVerId())
);
if (deviceTypeVerDetail != null) {
obj.setDevType(IBaseEnum.getLabelByValue(deviceTypeVerDetail.getDevTypeName(), EquipmentTypeEnum.class));
}
obj.setSoftVer( merge.getSoftVer());
obj.setSoftCount(merge.getSoftCount());
DecimalFormat decimalFormat = new DecimalFormat("0.00%");
String avg = decimalFormat.format((float) Long.valueOf(merge.getSoftCount()) / (float) Long.valueOf(obj.getHardCount()));
obj.setSoftAvg(avg);
}else {
obj.setSoftCount(0);
obj.setSoftAvg("0.00%");
}
});
return records;
}
} }

@ -322,4 +322,125 @@
A.DEV_ID = B.DEV_ID A.DEV_ID = B.DEV_ID
AND A.DEV_ID = #{devId} AND A.DEV_ID = #{devId}
</select> </select>
<select id="getSoftListReportPage" resultType="com.bellmann.model.vo.SoftVerMergeVO">
SELECT C
.DEV_VENDOR_NAME AS category,
C.DEV_TYPE_NAME AS devName,
C.DEV_HARD_VER AS devHard,
COUNT ( * ) hardCount
FROM
itms_device_static
A LEFT JOIN group_info_tab f ON f.groupid = A.region_area_id,
itms_device_type C,
itms_device_type_ver b,
itms_device_dynamic G
WHERE
A.type_and_ver_id = b.type_and_ver_id
AND b.dev_type_id = C.dev_type_id
AND A.dev_id = G.dev_id
AND A.dev_remark4 IS NOT NULL
AND f.groupid = A.region_area_id
AND b.DEV_TYPE_VER_STATUS = '1'
AND G.dev_id = A.dev_id
<if test="form.area !=0 and form.area!=null">
and f.PARENTGROUPID = #{form.area}
</if>
<if test="form.category!=null and form.category!= '' and form.category!= '-1' ">
and UPPER(c.DEV_VENDOR_NAME) = UPPER(#{form.category})
</if>
<if test="form.devName!=null and form.devName!='' and form.devName!='-1' ">
and c.DEV_TYPE_NAME = #{form.devName}
</if>
<if test="form.softVer!=null and form.softVer!='' and form.softVer!='-1'">
and b.soft_ver = #{form.softVer}
</if>
<if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'">
and and c.dev_hard_ver = #{form.devHardVer}
</if>
<if test="form.onLineStartTime!=null and form.onLineEndTime!=null">
and g.dev_online_time >= to_date(#{form.onLineStartTime}, 'yyyy-MM-dd HH24:mi:ss')
and g.dev_online_time&lt;= to_date(#{form.onLineEndTime},'yyyy-MM-dd HH24:mi:ss')
</if>
GROUP BY
C.DEV_VENDOR_NAME,
C.DEV_TYPE_NAME,
C.DEV_HARD_VER
</select>
<select id="getDeviceSoft" resultType="com.bellmann.model.bo.MergeSoftBO">
SELECT C.soft_ver AS SoftVer,
c.type_and_ver_id,
COUNT(*) AS softCount
FROM itms_device_static A,
itms_device_type b,
itms_device_type_ver C,
group_info_tab f,
itms_device_dynamic G
WHERE A.type_and_ver_id = C.type_and_ver_id
AND b.dev_type_id = C.dev_type_id
AND C.merge_ver = '1'
AND f.groupid = A.region_area_id
AND G.dev_id = A.dev_id
AND C.DEV_TYPE_VER_STATUS = '1'
and UPPER(b.DEV_VENDOR_NAME) = UPPER(#{category})
and b.DEV_TYPE_NAME = #{devName}
and b.DEV_HARD_VER = #{devHard}
<if test="query.area !=0 and query.area!=null">
and f.PARENTGROUPID = #{query.area}
</if>
<if test="query.softVer!=null and query.softVer!='' and query.softVer!='-1'">
and c.soft_ver = #{query.softVer}
</if>
<if test="query.onLineStartTime!=null and query.onLineEndTime!=null">
and g.dev_online_time >= to_date(#{form.onLineStartTime}, 'yyyy-MM-dd HH24:mi:ss')
and g.dev_online_time&lt;= to_date(#{form.onLineEndTime},'yyyy-MM-dd HH24:mi:ss')
</if>
group by C.soft_ver, c.type_and_ver_id
ORDER BY softCount
limit 1
</select>
<select id="exportSoftMergePage" resultType="com.bellmann.model.vo.SoftVerMergeExportVO">
SELECT C
.DEV_VENDOR_NAME AS category,
C.DEV_TYPE_NAME AS devName,
C.DEV_HARD_VER AS devHard,
COUNT ( * ) hardCount
FROM
itms_device_static
A LEFT JOIN group_info_tab f ON f.groupid = A.region_area_id,
itms_device_type C,
itms_device_type_ver b,
itms_device_dynamic G
WHERE
A.type_and_ver_id = b.type_and_ver_id
AND b.dev_type_id = C.dev_type_id
AND A.dev_id = G.dev_id
AND A.dev_remark4 IS NOT NULL
AND f.groupid = A.region_area_id
AND b.DEV_TYPE_VER_STATUS = '1'
AND G.dev_id = A.dev_id
<if test="form.area !=0 and form.area!=null">
and f.PARENTGROUPID = #{form.area}
</if>
<if test="form.category!=null and form.category!= '' and form.category!= '-1' ">
and UPPER(c.DEV_VENDOR_NAME) = UPPER(#{form.category})
</if>
<if test="form.devName!=null and form.devName!='' and form.devName!='-1' ">
and c.DEV_TYPE_NAME = #{form.devName}
</if>
<if test="form.softVer!=null and form.softVer!='' and form.softVer!='-1'">
and b.soft_ver = #{form.softVer}
</if>
<if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'">
and and c.dev_hard_ver = #{form.devHardVer}
</if>
<if test="form.onLineStartTime!=null and form.onLineEndTime!=null">
and g.dev_online_time >= to_date(#{form.onLineStartTime}, 'yyyy-MM-dd HH24:mi:ss')
and g.dev_online_time&lt;= to_date(#{form.onLineEndTime},'yyyy-MM-dd HH24:mi:ss')
</if>
GROUP BY
C.DEV_VENDOR_NAME,
C.DEV_TYPE_NAME,
C.DEV_HARD_VER
</select>
</mapper> </mapper>

@ -142,4 +142,14 @@
FROM itms_device_type_ver FROM itms_device_type_ver
order by soft_ver order by soft_ver
</select> </select>
<select id="mergeSoftVerOption" resultType="java.lang.String">
SELECT DISTINCT
( soft_ver )
FROM
ITMS_DEVICE_TYPE_VER
WHERE
ITMS_DEVICE_TYPE_VER.MERGE_VER = '1'
ORDER BY
soft_ver
</select>
</mapper> </mapper>

@ -226,7 +226,7 @@
and t1.soft_ver = #{form.softVer} and t1.soft_ver = #{form.softVer}
</if> </if>
<if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'"> <if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'">
and t1.dev_hand_ver = #{form.devHardVer} and t1.dev_hard_ver = #{form.devHardVer}
</if> </if>
<if test="form.gateWayType!=null and form.gateWayType!=''"> <if test="form.gateWayType!=null and form.gateWayType!=''">
and t1.dev_type_name_new = #{form.gateWayType} and t1.dev_type_name_new = #{form.gateWayType}
@ -283,7 +283,7 @@
and t1.soft_ver = #{form.softVer} and t1.soft_ver = #{form.softVer}
</if> </if>
<if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'"> <if test="form.devHardVer!=null and form.devHardVer!='' and form.devHardVer!='-1'">
and t1.dev_hand_ver = #{form.devHardVer} and t1.dev_hard_ver = #{form.devHardVer}
</if> </if>
<if test="form.gateWayType!=null and form.gateWayType!=''"> <if test="form.gateWayType!=null and form.gateWayType!=''">
and t1.dev_type_name_new = #{form.gateWayType} and t1.dev_type_name_new = #{form.gateWayType}

Loading…
Cancel
Save