ycl-common/src/main/java/enumeration/ErrorType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/java/com/ycl/task/ContractResultTask.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ycl-common/src/main/java/enumeration/ErrorType.java
@@ -15,7 +15,6 @@ DEVICE_OFFLINE("DEVICEOFFLINE", "设备离线"), VIDEO_LOSS("VIDEOMISS", "录像缺失"), VIDEO_NONE("NOVIDEO", "无录像"), PIC_URLABNORMAL("PICURLABNORMAL","图片访问异常"), POINT_INFO_ERROR("POINTINFOERRO", "点位信息错误"), POINT_INFO_MISS("POINTINFOMISS", "点位信息不全"), SIGNAL_LOSS("SIGNALMISS", "信号缺失"), @@ -28,9 +27,10 @@ UNKNOWN("UNKNOWN", "未知"), CLOCK_SKEW("CLOCKSKEW", "时钟偏差"), OSD_ERROR("OSD", "osd异常"), PIC_URLABNORMAL("PICURLABNORMAL","图片访问异常"), MONITOR_UNQUALIFY("MONITORUNQUALIFY", "一机一档不合格"), VIDEO_ORPIC_UNNORMAL("VIDEOORPICUNNORMAL", "视频拉流、图片获取异常"), PIC_UNUSEFUL("PICUNUSEFUL", "大图不可用"), VIDEO_ORPIC_UNNORMAL("VIDEOORPICUNNORMAL", "视频拉流、图片获取异常"), ; private String value; ycl-pojo/src/main/java/com/ycl/platform/domain/entity/CheckIndexVideo.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.ycl.platform.base.CheckIndex; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @@ -17,383 +18,110 @@ * @date 2024-04-29 */ @TableName("t_check_index_video") public class CheckIndexVideo extends CheckIndex { @Data public class CheckIndexVideo extends CheckIndex { private static final long serialVersionUID = 1L; /** 平台在线率 */ /** * 平台在线率 */ @Excel(name = "平台在线率") @TableField("platform_online") private BigDecimal platformOnline; /** 一机一档合格率 */ /** * 一机一档合格率 */ @Excel(name = "一机一档合格率") @TableField("monitor_qualification") private BigDecimal monitorQualification; /** 档案考核比 */ /** * 档案考核比 */ @Excel(name = "一机一档注册率") @TableField("monitor_registration") private BigDecimal monitorRegistration; /** 档案考核比 */ /** * 档案考核比 */ @Excel(name = "档案考核比") @TableField("archives_rate") private BigDecimal archivesRate; /** 点位在线率 */ /** * 点位在线率 */ @Excel(name = "点位在线率") @TableField("site_online") private BigDecimal siteOnline; /** 录象可用率 */ /** * 录象可用率 */ @Excel(name = "录象可用率") @TableField("video_available") private BigDecimal videoAvailable; /** 标注正确率 */ /** * 标注正确率 */ @Excel(name = "标注正确率") @TableField("annotation_accuracy") private BigDecimal annotationAccuracy; /** 校时准确率 */ /** * 校时准确率 */ @Excel(name = "校时准确率") @TableField("timing_accuracy") private BigDecimal timingAccuracy; /** 重点点位在线率 */ /** * 重点点位在线率 */ @Excel(name = "重点点位在线率") @TableField("key_site_online") private BigDecimal keySiteOnline; /** 重点点位录象可用率 */ @Excel(name = "重点点位录象可用率",width = 25) /** * 重点点位录象可用率 */ @Excel(name = "重点点位录象可用率", width = 25) @TableField("key_video_available") private BigDecimal keyVideoAvailable; /** 重点点位标注正确率 */ @Excel(name = "重点点位标注正确率",width = 25) /** * 重点点位标注正确率 */ @Excel(name = "重点点位标注正确率", width = 25) @TableField("key_annotation_accuracy") private BigDecimal keyAnnotationAccuracy; /** 重点点位按时正确率 */ @Excel(name = "重点点位按时正确率",width = 25) /** * 重点点位按时正确率 */ @Excel(name = "重点点位按时正确率", width = 25) @TableField("key_timing_accuracy") private BigDecimal keyTimingAccuracy; /** 重点指挥图像公安部巡检结果 */ @Excel(name = "重点指挥图像公安部巡检结果",width = 25) @TableField("key_command_image_inspection") private BigDecimal keyCommandImageInspection; /** 重点指挥图像目录树 */ @Excel(name = "重点指挥图像目录树",width = 25) @TableField("key_command_image_directory_tree") private BigDecimal keyCommandImageDirectoryTree; /** 在线检查平台部署及运行率 */ @Excel(name = "在线检查平台部署及运行率",width = 25) @TableField("online_inspection_platform") private BigDecimal onlineInspectionPlatform; /** 视频传输网资产准确率 */ @Excel(name = "视频传输网资产准确率",width = 25) @TableField("video_transmission_assets_accuracy") private BigDecimal videoTransmissionAssetsAccuracy; /** 视频传输网资产弱口令得分比率 */ @Excel(name = "视频传输网资产弱口令得分比率",width = 25) @TableField("video_transmission_assets_weak_password_score") private BigDecimal videoTransmissionAssetsWeakPasswordScore; /** 视频传输网危险资产得分比重 */ @Excel(name = "视频传输网危险资产得分比重",width = 25) @TableField("video_transmission_dangerous_assets_score") private BigDecimal videoTransmissionDangerousAssetsScore; /** 视频传输网边界完整性检测扣分项 */ @Excel(name = "视频传输网边界完整性检测扣分项",width = 25) @TableField("video_transmission_boundary_integrity_detection") private BigDecimal videoTransmissionBoundaryIntegrityDetection; /** 视频传输网边界完整性检测扣分项 */ @Excel(name = "重点指挥图像在线率",width = 25) /** * 重点指挥图像在线率 */ @Excel(name = "重点指挥图像在线率", width = 25) @TableField("key_command_image_online") private BigDecimal keyCommandImageOnline; /** 月运行率 */ @Excel(name = "月运行率") @TableField("operating_rate") private BigDecimal operatingRate; /** * 视频图像资源安全管理 */ @Excel(name = "视频图像资源安全管理", width = 25) @TableField("image_resource_security") private BigDecimal imageResourceSecurity; @ExcelIgnore @TableField(exist = false) private List<String> quarter; public List<String> getQuarter() { return quarter; } public void setQuarter(List<String> quarter) { this.quarter = quarter; } public BigDecimal getPlatformOnline() { return platformOnline; } public void setPlatformOnline(BigDecimal platformOnline) { this.platformOnline = platformOnline; } public BigDecimal getMonitorQualification() { return monitorQualification; } public void setMonitorQualification(BigDecimal monitorQualification) { this.monitorQualification = monitorQualification; } public BigDecimal getMonitorRegistration() { return monitorRegistration; } public void setMonitorRegistration(BigDecimal monitorRegistration) { this.monitorRegistration = monitorRegistration; } public BigDecimal getArchivesRate() { return archivesRate; } public void setArchivesRate(BigDecimal archivesRate) { this.archivesRate = archivesRate; } public BigDecimal getSiteOnline() { return siteOnline; } public void setSiteOnline(BigDecimal siteOnline) { this.siteOnline = siteOnline; } public BigDecimal getVideoAvailable() { return videoAvailable; } public void setVideoAvailable(BigDecimal videoAvailable) { this.videoAvailable = videoAvailable; } public BigDecimal getAnnotationAccuracy() { return annotationAccuracy; } public void setAnnotationAccuracy(BigDecimal annotationAccuracy) { this.annotationAccuracy = annotationAccuracy; } public BigDecimal getTimingAccuracy() { return timingAccuracy; } public void setTimingAccuracy(BigDecimal timingAccuracy) { this.timingAccuracy = timingAccuracy; } public BigDecimal getKeySiteOnline() { return keySiteOnline; } public void setKeySiteOnline(BigDecimal keySiteOnline) { this.keySiteOnline = keySiteOnline; } public BigDecimal getKeyVideoAvailable() { return keyVideoAvailable; } public void setKeyVideoAvailable(BigDecimal keyVideoAvailable) { this.keyVideoAvailable = keyVideoAvailable; } public BigDecimal getKeyAnnotationAccuracy() { return keyAnnotationAccuracy; } public void setKeyAnnotationAccuracy(BigDecimal keyAnnotationAccuracy) { this.keyAnnotationAccuracy = keyAnnotationAccuracy; } public BigDecimal getKeyCommandImageOnline() { return keyCommandImageOnline; } public void setKeyCommandImageOnline(BigDecimal keyCommandImageOnline) { this.keyCommandImageOnline = keyCommandImageOnline; } public BigDecimal getKeyTimingAccuracy() { return keyTimingAccuracy; } public void setKeyTimingAccuracy(BigDecimal keyTimingAccuracy) { this.keyTimingAccuracy = keyTimingAccuracy; } public BigDecimal getKeyCommandImageInspection() { return keyCommandImageInspection; } public void setKeyCommandImageInspection(BigDecimal keyCommandImageInspection) { this.keyCommandImageInspection = keyCommandImageInspection; } public BigDecimal getKeyCommandImageDirectoryTree() { return keyCommandImageDirectoryTree; } public void setKeyCommandImageDirectoryTree(BigDecimal keyCommandImageDirectoryTree) { this.keyCommandImageDirectoryTree = keyCommandImageDirectoryTree; } public BigDecimal getOnlineInspectionPlatform() { return onlineInspectionPlatform; } public void setOnlineInspectionPlatform(BigDecimal onlineInspectionPlatform) { this.onlineInspectionPlatform = onlineInspectionPlatform; } public BigDecimal getVideoTransmissionAssetsAccuracy() { return videoTransmissionAssetsAccuracy; } public void setVideoTransmissionAssetsAccuracy(BigDecimal videoTransmissionAssetsAccuracy) { this.videoTransmissionAssetsAccuracy = videoTransmissionAssetsAccuracy; } public BigDecimal getVideoTransmissionAssetsWeakPasswordScore() { return videoTransmissionAssetsWeakPasswordScore; } public void setVideoTransmissionAssetsWeakPasswordScore(BigDecimal videoTransmissionAssetsWeakPasswordScore) { this.videoTransmissionAssetsWeakPasswordScore = videoTransmissionAssetsWeakPasswordScore; } public BigDecimal getVideoTransmissionDangerousAssetsScore() { return videoTransmissionDangerousAssetsScore; } public void setVideoTransmissionDangerousAssetsScore(BigDecimal videoTransmissionDangerousAssetsScore) { this.videoTransmissionDangerousAssetsScore = videoTransmissionDangerousAssetsScore; } public BigDecimal getVideoTransmissionBoundaryIntegrityDetection() { return videoTransmissionBoundaryIntegrityDetection; } public void setVideoTransmissionBoundaryIntegrityDetection(BigDecimal videoTransmissionBoundaryIntegrityDetection) { this.videoTransmissionBoundaryIntegrityDetection = videoTransmissionBoundaryIntegrityDetection; } public BigDecimal getOperatingRate() { return operatingRate; } public void setOperatingRate(BigDecimal operatingRate) { this.operatingRate = operatingRate; } @Override public Long getId() { return super.getId(); } @Override public void setId(Long id) { super.setId(id); } @Override public String getDate() { return super.getDate(); } @Override public void setDate(String date) { super.setDate(date); } @Override public Date getCreateTime() { return super.getCreateTime(); } @Override public void setCreateTime(Date createTime) { super.setCreateTime(createTime); } @Override public Long getDeptId() { return super.getDeptId(); } @Override public void setDeptId(Long deptId) { super.setDeptId(deptId); } @Override public String getDeptName() { return super.getDeptName(); } @Override public void setDeptName(String deptName) { super.setDeptName(deptName); } @Override public Short getExamineTag() { return super.getExamineTag(); } @Override public void setExamineTag(Short examineTag) { super.setExamineTag(examineTag); } @Override public String toString() { return "CheckIndexVideo{" + "id=" + id + ", date='" + date + '\'' + ", createTime=" + createTime + ", deptId=" + deptId + ", deptName='" + deptName + '\'' + ", examineTag=" + examineTag + ", platformOnline=" + platformOnline + ", monitorQualification=" + monitorQualification + ", monitorRegistration=" + monitorRegistration + ", archivesRate=" + archivesRate + ", siteOnline=" + siteOnline + ", videoAvailable=" + videoAvailable + ", annotationAccuracy=" + annotationAccuracy + ", timingAccuracy=" + timingAccuracy + ", keySiteOnline=" + keySiteOnline + ", keyVideoAvailable=" + keyVideoAvailable + ", keyAnnotationAccuracy=" + keyAnnotationAccuracy + ", keyTimingAccuracy=" + keyTimingAccuracy + ", keyCommandImageInspection=" + keyCommandImageInspection + ", keyCommandImageDirectoryTree=" + keyCommandImageDirectoryTree + ", onlineInspectionPlatform=" + onlineInspectionPlatform + ", videoTransmissionAssetsAccuracy=" + videoTransmissionAssetsAccuracy + ", videoTransmissionAssetsWeakPasswordScore=" + videoTransmissionAssetsWeakPasswordScore + ", videoTransmissionDangerousAssetsScore=" + videoTransmissionDangerousAssetsScore + ", videoTransmissionBoundaryIntegrityDetection=" + videoTransmissionBoundaryIntegrityDetection + ", operatingRate=" + operatingRate + '}'; } } ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -10,7 +10,6 @@ import com.ycl.utils.DateUtils; import com.ycl.utils.bean.BeanUtils; import lombok.Data; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -24,8 +23,8 @@ * @since 2024/4/28 下午 4:14 */ @Component @Data @Component("contractResultTask") public class ContractResultTask { private final ITContractService contractService; @@ -38,7 +37,6 @@ /** * 每个月1号执行,统计考核结果 */ @Scheduled(cron = "0 0 0 1 * ?") @Transactional // @PostConstruct //启动时执行一次 public void contractResultTask() { ycl-server/src/main/resources/mapper/zgyw/CheckIndexVideoMapper.xml
@@ -21,18 +21,12 @@ <result property="keyVideoAvailable" column="key_video_available" /> <result property="keyAnnotationAccuracy" column="key_annotation_accuracy" /> <result property="keyTimingAccuracy" column="key_timing_accuracy" /> <result property="keyCommandImageInspection" column="key_command_image_inspection" /> <result property="keyCommandImageDirectoryTree" column="key_command_image_directory_tree" /> <result property="onlineInspectionPlatform" column="online_inspection_platform" /> <result property="videoTransmissionAssetsAccuracy" column="video_transmission_assets_accuracy" /> <result property="videoTransmissionAssetsWeakPasswordScore" column="video_transmission_assets_weak_password_score" /> <result property="videoTransmissionDangerousAssetsScore" column="video_transmission_dangerous_assets_score" /> <result property="videoTransmissionBoundaryIntegrityDetection" column="video_transmission_boundary_integrity_detection" /> <result property="operatingRate" column="operating_rate" /> <result property="keyCommandImageOnline" column="key_command_image_online" /> <result property="imageResourceSecurity" column="image_resource_security" /> </resultMap> <sql id="selectCheckIndexVideoVo"> select id, dept_id, create_time, examine_tag, platform_online, monitor_qualification, monitor_registration, archives_rate, site_online, video_available, annotation_accuracy, timing_accuracy, key_site_online, key_video_available, key_annotation_accuracy, key_timing_accuracy, key_command_image_inspection, key_command_image_directory_tree, online_inspection_platform, video_transmission_assets_accuracy, video_transmission_assets_weak_password_score, video_transmission_dangerous_assets_score, video_transmission_boundary_integrity_detection, operating_rate from t_check_index_video select id, dept_id, create_time, examine_tag, platform_online, monitor_qualification, monitor_registration, archives_rate, site_online, video_available, annotation_accuracy, timing_accuracy, key_site_online, key_video_available, key_annotation_accuracy, key_timing_accuracy, key_command_image_online,image_resource_security from t_check_index_video </sql> <select id="selectCheckIndexVideoList" parameterType="CheckIndexVideo" resultMap="CheckIndexVideoResult"> @@ -56,14 +50,8 @@ <if test="keyVideoAvailable != null "> and key_video_available = #{keyVideoAvailable}</if> <if test="keyAnnotationAccuracy != null "> and key_annotation_accuracy = #{keyAnnotationAccuracy}</if> <if test="keyTimingAccuracy != null "> and key_timing_accuracy = #{keyTimingAccuracy}</if> <if test="keyCommandImageInspection != null "> and key_command_image_inspection = #{keyCommandImageInspection}</if> <if test="keyCommandImageDirectoryTree != null "> and key_command_image_directory_tree = #{keyCommandImageDirectoryTree}</if> <if test="onlineInspectionPlatform != null "> and online_inspection_platform = #{onlineInspectionPlatform}</if> <if test="videoTransmissionAssetsAccuracy != null "> and video_transmission_assets_accuracy = #{videoTransmissionAssetsAccuracy}</if> <if test="videoTransmissionAssetsWeakPasswordScore != null "> and video_transmission_assets_weak_password_score = #{videoTransmissionAssetsWeakPasswordScore}</if> <if test="videoTransmissionDangerousAssetsScore != null "> and video_transmission_dangerous_assets_score = #{videoTransmissionDangerousAssetsScore}</if> <if test="videoTransmissionBoundaryIntegrityDetection != null "> and video_transmission_boundary_integrity_detection = #{videoTransmissionBoundaryIntegrityDetection}</if> <if test="operatingRate != null "> and operating_rate = #{operatingRate}</if> <if test="keyCommandImageOnline != null "> and key_command_image_online = #{keyCommandImageOnline}</if> <if test="imageResourceSecurity != null "> and image_resource_security = #{imageResourceSecurity}</if> <if test="deptIds != null ">and tciv.dept_id in <foreach collection="deptIds" separator="," open="(" close=")" item="deptId"> #{deptId} @@ -95,15 +83,9 @@ <if test="keyVideoAvailable != null">key_video_available,</if> <if test="keyAnnotationAccuracy != null">key_annotation_accuracy,</if> <if test="keyTimingAccuracy != null">key_timing_accuracy,</if> <if test="keyCommandImageInspection != null">key_command_image_inspection,</if> <if test="keyCommandImageDirectoryTree != null">key_command_image_directory_tree,</if> <if test="onlineInspectionPlatform != null">online_inspection_platform,</if> <if test="videoTransmissionAssetsAccuracy != null">video_transmission_assets_accuracy,</if> <if test="videoTransmissionAssetsWeakPasswordScore != null">video_transmission_assets_weak_password_score,</if> <if test="videoTransmissionDangerousAssetsScore != null">video_transmission_dangerous_assets_score,</if> <if test="videoTransmissionBoundaryIntegrityDetection != null">video_transmission_boundary_integrity_detection,</if> <if test="operatingRate != null">operating_rate,</if> </trim> <if test="keyCommandImageOnline != null">key_command_image_online,</if> <if test="imageResourceSecurity != null">image_resource_security,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="deptId != null">#{deptId},</if> <if test="createTime != null">#{createTime},</if> @@ -120,14 +102,8 @@ <if test="keyVideoAvailable != null">#{keyVideoAvailable},</if> <if test="keyAnnotationAccuracy != null">#{keyAnnotationAccuracy},</if> <if test="keyTimingAccuracy != null">#{keyTimingAccuracy},</if> <if test="keyCommandImageInspection != null">#{keyCommandImageInspection},</if> <if test="keyCommandImageDirectoryTree != null">#{keyCommandImageDirectoryTree},</if> <if test="onlineInspectionPlatform != null">#{onlineInspectionPlatform},</if> <if test="videoTransmissionAssetsAccuracy != null">#{videoTransmissionAssetsAccuracy},</if> <if test="videoTransmissionAssetsWeakPasswordScore != null">#{videoTransmissionAssetsWeakPasswordScore},</if> <if test="videoTransmissionDangerousAssetsScore != null">#{videoTransmissionDangerousAssetsScore},</if> <if test="videoTransmissionBoundaryIntegrityDetection != null">#{videoTransmissionBoundaryIntegrityDetection},</if> <if test="operatingRate != null">#{operatingRate},</if> <if test="keyCommandImageOnline != null">#{keyCommandImageOnline},</if> <if test="imageResourceSecurity != null">#{imageResourceSecurity},</if> </trim> </insert> @@ -149,14 +125,8 @@ <if test="keyVideoAvailable != null">key_video_available = #{keyVideoAvailable},</if> <if test="keyAnnotationAccuracy != null">key_annotation_accuracy = #{keyAnnotationAccuracy},</if> <if test="keyTimingAccuracy != null">key_timing_accuracy = #{keyTimingAccuracy},</if> <if test="keyCommandImageInspection != null">key_command_image_inspection = #{keyCommandImageInspection},</if> <if test="keyCommandImageDirectoryTree != null">key_command_image_directory_tree = #{keyCommandImageDirectoryTree},</if> <if test="onlineInspectionPlatform != null">online_inspection_platform = #{onlineInspectionPlatform},</if> <if test="videoTransmissionAssetsAccuracy != null">video_transmission_assets_accuracy = #{videoTransmissionAssetsAccuracy},</if> <if test="videoTransmissionAssetsWeakPasswordScore != null">video_transmission_assets_weak_password_score = #{videoTransmissionAssetsWeakPasswordScore},</if> <if test="videoTransmissionDangerousAssetsScore != null">video_transmission_dangerous_assets_score = #{videoTransmissionDangerousAssetsScore},</if> <if test="videoTransmissionBoundaryIntegrityDetection != null">video_transmission_boundary_integrity_detection = #{videoTransmissionBoundaryIntegrityDetection},</if> <if test="operatingRate != null">operating_rate = #{operatingRate},</if> <if test="keyCommandImageOnline != null">key_command_image_online = #{keyCommandImageOnline},</if> <if test="imageResourceSecurity != null">image_resource_security = #{imageResourceSecurity},</if> </trim> where id = #{id} </update> @@ -190,15 +160,8 @@ IFNULL(ROUND(AVG(key_video_available * 100), 0), 0) AS key_video_available, IFNULL(ROUND(AVG(key_annotation_accuracy * 100), 0), 0) AS key_annotation_accuracy, IFNULL(ROUND(AVG(key_timing_accuracy * 100), 0), 0) AS key_timing_accuracy, IFNULL(ROUND(AVG(key_command_image_inspection * 100), 0), 0) AS key_command_image_inspection, IFNULL(ROUND(AVG(key_command_image_directory_tree * 100), 0), 0) AS key_command_image_directory_tree, IFNULL(ROUND(AVG(online_inspection_platform * 100), 0), 0) AS online_inspection_platform, IFNULL(ROUND(AVG(video_transmission_assets_accuracy * 100), 0), 0) AS video_transmission_assets_accuracy, IFNULL(ROUND(AVG(video_transmission_assets_weak_password_score * 100), 0), 0) AS video_transmission_assets_weak_password_score, IFNULL(ROUND(AVG(video_transmission_dangerous_assets_score * 100), 0), 0) AS video_transmission_dangerous_assets_score, IFNULL(ROUND(AVG(video_transmission_boundary_integrity_detection * 100), 0), 0) AS video_transmission_boundary_integrity_detection, IFNULL(ROUND(AVG(operating_rate * 100), 0), 0) AS operating_rate, IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online IFNULL(ROUND(AVG(key_command_image_online * 100), 0), 0) AS key_command_image_online, IFNULL(ROUND(AVG(image_resource_security * 100), 0), 0) AS image_resource_security FROM t_check_index_video <where> ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -212,6 +212,6 @@ LEFT JOIN t_work_order_error_type woet ON woet.work_order_no = wo.work_order_no LEFT JOIN t_work_order_auditing_record woar ON woar.work_order_id = wo.id WHERE wo.deleted = 0 AND wo.status = #{status} AND woar.result = #{auditStatus} AND wo.deduct = 0 AND woar.create_time between #{startTime} and #{endTime} AND wo.deduct = 0 AND woar.create_time between #{startTime} and #{endTime} </select> </mapper>