ycl-pojo/src/main/java/com/ycl/platform/domain/query/DataCenterQuery.java
@@ -1,9 +1,13 @@ package com.ycl.platform.domain.query; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsQuery; import lombok.Data; import utils.DateUtils; import java.util.Date; import java.util.List; import java.util.Objects; /** * 数据中心查询 @@ -15,9 +19,11 @@ public class DataCenterQuery extends AbsQuery { /** 开始时间 */ @JsonFormat(pattern = "yyyy-MM-dd") private Date startTime; /** 结束时间 */ @JsonFormat(pattern = "yyyy-MM-dd") private Date endTime; /** 关键词 */ @@ -25,4 +31,15 @@ /** 动态列的表明条件 */ private String tableName = "t_monitor"; public void setTime() { if (Objects.nonNull(this.startTime)) { this.startTime = DateUtils.getDayStart(this.startTime); } if (Objects.nonNull(this.endTime)) { this.endTime = DateUtils.getDayEnd(this.endTime); } } } ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java
@@ -35,6 +35,9 @@ private List<Integer> peopleIdList; @ApiModelProperty("运维单位") private Integer unitId; @ApiModelProperty("状态") private Integer status; ycl-pojo/src/main/java/com/ycl/platform/domain/vo/PlatformOnlineVO.java
@@ -1,5 +1,6 @@ package com.ycl.platform.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsVo; import com.ycl.platform.domain.entity.PlatformOnline; import org.springframework.lang.NonNull; @@ -26,6 +27,7 @@ private String area; /** 统计的日期 */ @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; /** 今日离线时长/秒 */ ycl-server/src/main/java/com/ycl/platform/controller/DataCenterController.java
@@ -8,9 +8,7 @@ import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; /** * 数据中心接口 @@ -33,10 +31,11 @@ * @param query * @return */ @GetMapping("/assetManagement") @PostMapping("/assetManagement") @ApiOperation(value = "资产管理", notes = "资产管理") @PreAuthorize("@ss.hasPermi('assetManagement:page')") public Result assetManagement(DataCenterQuery query) { public Result assetManagement(@RequestBody DataCenterQuery query) { query.setTime(); return monitorService.assetManagement(query); } @@ -46,10 +45,11 @@ * @param query * @return */ @GetMapping("/platformOnlineRate") @PostMapping("/platformOnlineRate") @ApiOperation(value = "平台在线率", notes = "平台在线率") @PreAuthorize("@ss.hasPermi('platformOnline:page')") public Result platformOnlineRate(DataCenterQuery query) { public Result platformOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return platformOnlineService.page(query); } @@ -59,8 +59,9 @@ * @param query * @return */ @GetMapping("/videoOneMachineDocumentRegister") public Result videoOneMachineDocumentRegister(DataCenterQuery query) { @PostMapping("/videoOneMachineDocumentRegister") public Result videoOneMachineDocumentRegister(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoOneMachineDocumentRegister(query); } @@ -70,8 +71,9 @@ * @param query * @return */ @GetMapping("/videoOneMachineDocumentQualified") public Result videoOneMachineDocumentQualified(DataCenterQuery query) { @PostMapping("/videoOneMachineDocumentQualified") public Result videoOneMachineDocumentQualified(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoOneMachineDocumentQualified(query); } @@ -81,8 +83,9 @@ * @param query * @return */ @GetMapping("/videoAssessmentFileRatio") public Result videoAssessmentFileRatio(DataCenterQuery query) { @PostMapping("/videoAssessmentFileRatio") public Result videoAssessmentFileRatio(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoAssessmentFileRatio(query); } @@ -92,8 +95,9 @@ * @param query * @return */ @GetMapping("/videoPointOnlineRate") public Result videoPointOnlineRate(DataCenterQuery query) { @PostMapping("/videoPointOnlineRate") public Result videoPointOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoPointOnlineRate(query); } @@ -103,8 +107,9 @@ * @param query * @return */ @GetMapping("/videoMinistrySiteOnline") public Result videoMinistrySiteOnline(DataCenterQuery query) { @PostMapping("/videoMinistrySiteOnline") public Result videoMinistrySiteOnline(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoAvailabilityRate(query); } @@ -114,8 +119,9 @@ * @param query * @return */ @GetMapping("/videoMinistryVideoAvailable") public Result videoMinistryVideoAvailable(DataCenterQuery query) { @PostMapping("/videoMinistryVideoAvailable") public Result videoMinistryVideoAvailable(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoLabelingAccuracy(query); } @@ -125,8 +131,9 @@ * @param query * @return */ @GetMapping("/videoImportantPointAvailabilityRate") public Result videoImportantPointAvailabilityRate(DataCenterQuery query) { @PostMapping("/videoImportantPointAvailabilityRate") public Result videoImportantPointAvailabilityRate(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImportantPointAvailabilityRate(query); } @@ -136,8 +143,9 @@ * @param query * @return */ @GetMapping("/videoImportantPointLabelingAccuracy") public Result videoImportantPointLabelingAccuracy(DataCenterQuery query) { @PostMapping("/videoImportantPointLabelingAccuracy") public Result videoImportantPointLabelingAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImportantPointLabelingAccuracy(query); } @@ -147,8 +155,9 @@ * @param query * @return */ @GetMapping("/videoCheckTimeAccuracy") public Result videoCheckTimeAccuracy(DataCenterQuery query) { @PostMapping("/videoCheckTimeAccuracy") public Result videoCheckTimeAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoCheckTimeAccuracy(query); } @@ -158,8 +167,9 @@ * @param query * @return */ @GetMapping("/videoImportantPointCheckTimeAccuracy") public Result videoImportantPointCheckTimeAccuracy(DataCenterQuery query) { @PostMapping("/videoImportantPointCheckTimeAccuracy") public Result videoImportantPointCheckTimeAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImportantPointCheckTimeAccuracy(query); } @@ -169,8 +179,9 @@ * @param query * @return */ @GetMapping("/videoImportantPointOnlineRate") public Result videoImportantPointOnlineRate(DataCenterQuery query) { @PostMapping("/videoImportantPointOnlineRate") public Result videoImportantPointOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImportantPointOnlineRate(query); } @@ -180,8 +191,9 @@ * @param query * @return */ @GetMapping("/videoImportantPointImageOnlineRate") public Result videoImportantPointImageOnlineRate(DataCenterQuery query) { @PostMapping("/videoImportantPointImageOnlineRate") public Result videoImportantPointImageOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImportantPointImageOnlineRate(query); } /** @@ -190,8 +202,9 @@ * @param query * @return */ @GetMapping("/videoImageResourceSecurity") public Result videoImageResourceSecurity(DataCenterQuery query) { @PostMapping("/videoImageResourceSecurity") public Result videoImageResourceSecurity(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.videoImageResourceSecurity(query); } @@ -201,8 +214,9 @@ * @param query * @return */ @GetMapping("/vehicleViewDockStable") public Result vehicleViewDockStable(DataCenterQuery query) { @PostMapping("/vehicleViewDockStable") public Result vehicleViewDockStable(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleViewDockStable(query); } @@ -212,8 +226,9 @@ * @param query * @return */ @GetMapping("/vehiclePointOnlineRate") public Result vehiclePointOnlineRate(DataCenterQuery query) { @PostMapping("/vehiclePointOnlineRate") public Result vehiclePointOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehiclePointOnlineRate(query); } @@ -223,8 +238,9 @@ * @param query * @return */ @GetMapping("/vehicleNetDeviceDirectoryConsistency") public Result vehicleNetDeviceDirectoryConsistency(DataCenterQuery query) { @PostMapping("/vehicleNetDeviceDirectoryConsistency") public Result vehicleNetDeviceDirectoryConsistency(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleNetDeviceDirectoryConsistency(query); } @@ -234,8 +250,9 @@ * @param query * @return */ @GetMapping("/vehicleCollectionConsistency") public Result vehicleCollectionConsistency(DataCenterQuery query) { @PostMapping("/vehicleCollectionConsistency") public Result vehicleCollectionConsistency(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleCollectionConsistency(query); } @@ -245,8 +262,9 @@ * @param query * @return */ @GetMapping("/vehicleCollectionDataIntegrity") public Result vehicleCollectionDataIntegrity(DataCenterQuery query) { @PostMapping("/vehicleCollectionDataIntegrity") public Result vehicleCollectionDataIntegrity(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleCollectionDataIntegrity(query); } @@ -256,8 +274,9 @@ * @param query * @return */ @GetMapping("/vehicleCollectionDataCaptured") public Result vehicleCollectionDataCaptured(DataCenterQuery query) { @PostMapping("/vehicleCollectionDataCaptured") public Result vehicleCollectionDataCaptured(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleCollectionDataCaptured(query); } @@ -267,8 +286,9 @@ * @param query * @return */ @GetMapping("/vehicleClockAccuracy") public Result vehicleClockAccuracy(DataCenterQuery query) { @PostMapping("/vehicleClockAccuracy") public Result vehicleClockAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleClockAccuracy(query); } @@ -278,8 +298,9 @@ * @param query * @return */ @GetMapping("/vehicleTimelyUploadAccuracy") public Result vehicleTimelyUploadAccuracy(DataCenterQuery query) { @PostMapping("/vehicleTimelyUploadAccuracy") public Result vehicleTimelyUploadAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleTimelyUploadAccuracy(query); } @@ -289,8 +310,9 @@ * @param query * @return */ @GetMapping("/vehicleUrlAccuracy") public Result vehicleUrlAccuracy(DataCenterQuery query) { @PostMapping("/vehicleUrlAccuracy") public Result vehicleUrlAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleUrlAccuracy(query); } @@ -300,8 +322,9 @@ * @param query * @return */ @GetMapping("/vehicleBigImgAccuracy") public Result vehicleBigImgAccuracy(DataCenterQuery query) { @PostMapping("/vehicleBigImgAccuracy") public Result vehicleBigImgAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return dataCenterService.vehicleBigImgAccuracy(query); } @@ -312,8 +335,9 @@ * @param query * @return */ @GetMapping("/faceViewDockStable") public Result faceViewDockStable(DataCenterQuery query) { @PostMapping("/faceViewDockStable") public Result faceViewDockStable(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceViewDockStable(query)); } @@ -323,8 +347,9 @@ * @param query * @return */ @GetMapping("/facePointOnlineRate") public Result facePointOnlineRate(DataCenterQuery query) { @PostMapping("/facePointOnlineRate") public Result facePointOnlineRate(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.facePointOnlineRate(query)); } @@ -334,8 +359,9 @@ * @param query * @return */ @GetMapping("/faceDirectoryConsistency") public Result faceDirectoryConsistency(DataCenterQuery query) { @PostMapping("/faceDirectoryConsistency") public Result faceDirectoryConsistency(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceDirectoryConsistency(query)); } @@ -345,8 +371,9 @@ * @param query * @return */ @GetMapping("/faceCollectionConsistency") public Result faceCollectionConsistency(DataCenterQuery query) { @PostMapping("/faceCollectionConsistency") public Result faceCollectionConsistency(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceCollectionConsistency(query)); } @@ -356,8 +383,9 @@ * @param query * @return */ @GetMapping("/faceImgQualification") public Result faceImgQualification(DataCenterQuery query) { @PostMapping("/faceImgQualification") public Result faceImgQualification(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceImgQualification(query)); } @@ -367,8 +395,9 @@ * @param query * @return */ @GetMapping("/faceCapturesImagesAccuracy") public Result faceCapturesImagesAccuracy(DataCenterQuery query) { @PostMapping("/faceCapturesImagesAccuracy") public Result faceCapturesImagesAccuracy(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceCapturesImagesAccuracy(query)); } @@ -378,8 +407,9 @@ * @param query * @return */ @GetMapping("/faceTimelyUpload") public Result faceTimelyUpload(DataCenterQuery query) { @PostMapping("/faceTimelyUpload") public Result faceTimelyUpload(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceTimelyUpload(query)); } @@ -389,8 +419,9 @@ * @param query * @return */ @GetMapping("/faceAvailabilityOfLargeImg") public Result faceAvailabilityOfLargeImg(DataCenterQuery query) { @PostMapping("/faceAvailabilityOfLargeImg") public Result faceAvailabilityOfLargeImg(@RequestBody DataCenterQuery query) { query.setTime(); return (dataCenterService.faceAvailabilityOfLargeImg(query)); } } ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java
@@ -111,7 +111,7 @@ @PostMapping("/distribute/page") @ApiOperation(value = "下发分页", notes = "下发分页") @PreAuthorize("@ss.hasPermi('work:order:distribute')") @PreAuthorize("@ss.hasPermi('work:order:distribute:page')") public Result distributePage(@RequestBody DistributeWorkOrderQuery query) { return workOrderService.distributePage(query); } @@ -132,7 +132,7 @@ @GetMapping("/{id}") @ApiOperation(value = "详情", notes = "详情") @PreAuthorize("@ss.hasPermi('work:order:query')") @PreAuthorize("@ss.hasPermi('work:order:detail')") public Result detail(@PathVariable("id") String id) { return workOrderService.detail(id); } ycl-server/src/main/java/com/ycl/platform/mapper/CheckIndexVideoMapper.java
@@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.CheckIndexVideo; import com.ycl.platform.domain.query.DashboardQuery; import org.apache.ibatis.annotations.MapKey; import java.util.List; import java.util.Map; /** * 视频指标概率数据Mapper接口 @@ -76,4 +78,11 @@ * @return 视频指标概率数据集合 */ List<CheckIndexVideo> selectAndDeptName(); /** * 查询每个部门最新数据 * @return 数据Map */ @MapKey(value = "deptId") Map<Long, CheckIndexVideo> selectLastOneByDept(); } ycl-server/src/main/java/com/ycl/platform/mapper/YwUnitMapper.java
@@ -25,7 +25,7 @@ * 运维单位列表统计 * @return 数据 */ List<YwUnitVO> workList(@Param("query") DistributeWorkOrderQuery query); Integer workList(@Param("query") DistributeWorkOrderQuery query); /** * 通过用户ID查找运维单位 ycl-server/src/main/java/com/ycl/platform/service/impl/DataCenterServiceImpl.java
@@ -62,9 +62,20 @@ long total = mongoTemplate.count(query, VideoOnlineResult.class); query.with(Sort.by(Sort.Order.asc(TIME_FIELD))).skip(params.getSkipNum()).limit(Math.toIntExact(params.getPageSize())); List<VideoOnlineResult> resultList = mongoTemplate.find(query, VideoOnlineResult.class); long count = mongoTemplate.count(new Query(), VideoOnlineResult.class); // 统计 Criteria criteriaCount = new Criteria(); // 普通查询 if (Objects.nonNull(params.getStartTime()) && Objects.nonNull(params.getEndTime())) { criteriaCount.andOperator( Criteria.where(TIME_FIELD).gte(params.getStartTime()).lte(params.getEndTime()) ); } Query countQuery = new Query(); countQuery.addCriteria(criteriaCount); long count = mongoTemplate.count(countQuery, VideoOnlineResult.class); HashMap<String, Object> map = new HashMap<>(); map.put("total", count); map.put("count", Arrays.asList(count)); map.put("list", resultList); return Result.ok().data(map).total(total); } ycl-server/src/main/java/com/ycl/platform/service/impl/ImageResourceSecurityServiceImpl.java
@@ -2,7 +2,6 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.read.listener.PageReadListener; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.ycl.handler.ImageResourceHandler; import com.ycl.platform.domain.entity.CheckIndexVideo; import com.ycl.platform.domain.entity.ImageResourceSecurity; @@ -20,9 +19,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.math.BigDecimal; import java.util.*; /** * platformService业务层处理 @@ -47,12 +45,11 @@ @Override public List<ImageResourceSecurity> selectImageResourceSecurityList(ImageResourceSecurity imageResourceSecurity) { List<ImageResourceSecurity> list = imageResourceSecurityMapper.selectImageResourceSecurityList(imageResourceSecurity); list.forEach(item -> item.setImageResourceSecurity(new LambdaQueryChainWrapper<>(checkIndexVideoMapper) .eq(CheckIndexVideo::getDeptId, item.getDeptId()) .orderByDesc(CheckIndexVideo::getCreateTime, CheckIndexVideo::getImageResourceSecurity) .last("limit 1") .one() .getImageResourceSecurity())); Map<Long, CheckIndexVideo> map = checkIndexVideoMapper.selectLastOneByDept(); list.forEach(item -> item.setImageResourceSecurity( Optional.ofNullable(map.get(item.getDeptId())) .map(CheckIndexVideo::getImageResourceSecurity) .orElse(BigDecimal.ZERO))); return list; } ycl-server/src/main/java/com/ycl/platform/service/impl/PlatformOnlineServiceImpl.java
@@ -13,6 +13,8 @@ import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import java.util.Arrays; import java.util.HashMap; import java.util.List; /** @@ -47,7 +49,10 @@ public Result page(DataCenterQuery query) { Page<PlatformOnlineVO> page = new Page<>(query.getPageNum(), query.getPageSize()); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); HashMap<String, Object> map = new HashMap<>(); // map.put("count", Arrays.asList()); map.put("list", page.getRecords()); return Result.ok().data(map).total(page.getTotal()); } } ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -252,6 +252,7 @@ @Override public Result page(ReportQuery query) { IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class); query.setUnitId(SecurityUtils.getUnitId()); baseMapper.page(page, query); List<SysDictData> errorTypeList = dictTypeService.selectDictDataByType("report_error_type"); Map<String, String> dictMap = errorTypeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); @@ -310,6 +311,7 @@ public List<ReportVO> export(ReportQuery query) { IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class); page.setSize(-1); query.setUnitId(SecurityUtils.getUnitId()); baseMapper.page(page, query); List<SysDictData> errorTypeList = dictTypeService.selectDictDataByType("report_error_type"); Map<String, String> dictMap = errorTypeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); ycl-server/src/main/java/com/ycl/platform/service/impl/YwUnitServiceImpl.java
@@ -216,8 +216,18 @@ @Override public Result workList(DistributeWorkOrderQuery query) { List<YwUnitVO> entities = baseMapper.workList(query); return Result.ok().data(entities); List<YwUnit> ywUnits = baseMapper.selectList(null); List<YwUnitVO> lists = ywUnits.stream().map(item -> { YwUnitVO vo = new YwUnitVO(); BeanUtils.copyProperties(item, vo); return vo; }).collect(Collectors.toList()); for (YwUnitVO ywUnit : lists) { query.setUnitId(ywUnit.getId()); Integer workOrderNum = baseMapper.workList(query); ywUnit.setWorkOrderCount(workOrderNum); } return Result.ok().data(lists); } @Override ycl-server/src/main/java/com/ycl/utils/SecurityUtils.java
@@ -44,6 +44,11 @@ * */ public static Integer getUnitId() { try { if (isAdmin(getUserId())) { return null; } else if (hasRole("yw_admin")) { return null; } return getLoginUser().getUser().getUnitId(); } catch (Exception e) ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -207,4 +207,16 @@ WHERE rn = 1; </select> <select id="selectLastOneByDept" resultType="java.util.Map"> WITH temp AS ( SELECT image_resource_security AS imageResourceSecurity, dept_id AS deptId, ROW_NUMBER() OVER(PARTITION BY dept_id ORDER BY create_time DESC, image_resource_security DESC) AS num FROM t_check_index_video ) SELECT deptId, imageResourceSecurity FROM temp WHERE num = 1; </select> </mapper> ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
@@ -41,6 +41,9 @@ <if test="query.reportType != null and query.reportType != ''"> AND r.report_type = #{query.reportType} </if> <if test="query.unitId != null"> AND r.unit_id = #{query.unitId} </if> <if test="query.status != null"> AND r.status = #{query.status} </if> ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -508,10 +508,14 @@ #{query.keyword} as keyword FROM t_monitor tm INNER JOIN t_yw_point yp ON yp.serial_number = tm.serial_number <where> <if test="query.keyword != null and query.keyword != ''"> AND tm.name like concat('%', #{query.keyword}, '%') </if> <if test="query.startTIme != null and query.endTime != null"> AND yp.create_time between #{query.startTime} and #{query.endTime} </if> </where> </select> ycl-server/src/main/resources/mapper/zgyw/YwUnitMapper.xml
@@ -33,19 +33,12 @@ where id = #{id} </select> <select id="workList" resultType="com.ycl.platform.domain.vo.YwUnitVO"> <select id="workList" resultType="integer"> SELECT u.id AS id, u.unit_name, count(DISTINCT wot.id) AS work_order_count FROM t_yw_unit u LEFT JOIN ( SELECT wo.id, wo.unit_id count(*) FROM t_work_order wo INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number INNER JOIN t_monitor tm ON wo.serial_number = tm.serial_number AND #{query.unitId} INNER JOIN t_yw_point yp ON yp.serial_number = wo.serial_number AND yp.deleted = 0 INNER JOIN t_work_order_error_type et ON wo.work_order_no = et.work_order_no INNER JOIN sys_dict_data da ON da.dict_value = et.error_name AND da.dict_type = 'error_type' @@ -60,9 +53,6 @@ <if test="query.keyword != null and query.keyword != ''"> AND (tm.name like concat('%', #{query.keyword}, '%') or tm.serial_number like concat('%', #{query.keyword}, '%')) </if> ) as wot ON wot.unit_id = u.id WHERE u.deleted = 0 group by u.id </select> <insert id="insertYwUnit" parameterType="YwUnit" useGeneratedKeys="true" keyProperty="id">