ycl-common/src/main/java/enumeration/general/ErrorTypeEnum.java
File was deleted ycl-pojo/src/main/java/com/ycl/platform/domain/entity/Report.java
@@ -39,10 +39,6 @@ @TableField("report_type") private String reportType; @ApiModelProperty("审核时间") @TableField("auditing_time") private Date auditingTime; @ApiModelProperty("报备内容") @TableField("report_content") private String reportContent; @@ -55,13 +51,9 @@ @TableField("error_type") private String errorType; @ApiModelProperty("状态") @ApiModelProperty("状态: 0:未审核,1:审核通过,2:审核驳回") @TableField("status") private Integer status; @ApiModelProperty("审核意见") @TableField("audit_opinion") private String auditOpinion; @ApiModelProperty("生效时间") @TableField("begin_create_time") ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ReportAuditingRecord.java
New file @@ -0,0 +1,54 @@ package com.ycl.platform.domain.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.util.Date; /** * 报备审核记录 * * @author:xp * @date:2024/9/1 21:03 */ @Data @TableName("t_report_auditing_record") public class ReportAuditingRecord { @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 报备id */ @TableField("report_id") private Integer reportId; /** * 审核结果 */ @TableField("result") private Boolean result; /** * 审核意见 */ @TableField("result_remark") private String resultRemark; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(value = "create_time",fill = FieldFill.INSERT) private Date createTime; /** * 逻辑删除 */ @TableField(value = "deleted", fill = FieldFill.INSERT) private Integer deleted; } ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ReportErrorType.java
New file @@ -0,0 +1,41 @@ package com.ycl.platform.domain.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.ycl.platform.base.AbsEntity; import lombok.Data; import java.util.Date; /** * 报备故障类型 * * @author:xp * @date:2024/9/1 15:42 */ @Data @TableName("t_report_error_type") public class ReportErrorType { @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 创建时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @TableField(value = "create_time",fill = FieldFill.INSERT) private Date createTime; @TableField("report_id") private Integer reportId; @TableField("error_type") private String errorType; /** * 逻辑删除 */ @TableField(value = "deleted", fill = FieldFill.INSERT) private Integer deleted; } ycl-pojo/src/main/java/com/ycl/platform/domain/form/ReportForm.java
@@ -15,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.Date; import java.util.List; /** * 报备表单 @@ -31,7 +32,7 @@ private Integer peopleId; @ApiModelProperty("点位") @ApiModelProperty("点位国标码") private String pointId; @ApiModelProperty("导入点位") @@ -45,7 +46,7 @@ @JsonFormat(pattern = "yyyy-MM-dd") private Date endCreateTime; @ApiModelProperty("审核类型") @ApiModelProperty("报备类型") private String reportType; @NotBlank(message = "报备内容不能为空", groups = {Add.class, Update.class}) @@ -57,7 +58,7 @@ private String reportMaterials; @ApiModelProperty("故障类型") private String errorType; private List<String> errorTypeList; public static Report getEntityByForm(@NonNull ReportForm form, Report entity) { if(entity == null) { ycl-pojo/src/main/java/com/ycl/platform/domain/query/ReportQuery.java
@@ -38,5 +38,8 @@ @ApiModelProperty("状态") private Integer status; @ApiModelProperty("故障类型") private List<String> errorTypeList; } ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ReportVO.java
@@ -10,6 +10,7 @@ import org.springframework.lang.NonNull; import java.util.Date; import java.util.List; /** * 报备展示 @@ -34,6 +35,8 @@ /** 设备编码 */ private String serialNumber; private String pointId; @Excel(name = "点位") private String pointName; @@ -53,6 +56,18 @@ @Excel(name = "故障类型") private String errorType; private List<String> errorTypeList; /** * 审核结果 */ private Boolean result; /** * 审核意见 */ private String resultRemark; /** 审核时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") @@ -61,13 +76,13 @@ /** * 生效时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date beginCreateTime; /** * 失效时间 */ @JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endCreateTime; /** ycl-pojo/src/main/java/com/ycl/platform/domain/vo/YwPointVO.java
@@ -58,6 +58,9 @@ /** 部级标签 */ private Boolean deptTag; /** 国标码 */ private String serialNumber; public static YwPointVO getVoByEntity(@NonNull YwPoint entity, YwPointVO vo) { if(vo == null) { vo = new YwPointVO(); ycl-server/src/main/java/com/ycl/platform/mapper/ReportAuditingRecordMapper.java
New file @@ -0,0 +1,13 @@ package com.ycl.platform.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.ReportAuditingRecord; import org.apache.ibatis.annotations.Mapper; /** * @author:xp * @date:2024/9/1 21:07 */ @Mapper public interface ReportAuditingRecordMapper extends BaseMapper<ReportAuditingRecord> { } ycl-server/src/main/java/com/ycl/platform/mapper/ReportErrorTypeMapper.java
New file @@ -0,0 +1,16 @@ package com.ycl.platform.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ycl.platform.domain.entity.ReportErrorType; import org.apache.ibatis.annotations.Mapper; /** * @author:xp * @date:2024/9/1 15:44 */ @Mapper public interface ReportErrorTypeMapper extends BaseMapper<ReportErrorType> { } ycl-server/src/main/java/com/ycl/platform/mapper/YwPointMapper.java
@@ -61,4 +61,20 @@ * @param pointList */ int updatePoint(List<YwPoint> pointList); /** * 统计某点位对应的未完成工单数量,理论上最大值为1个工单 * * @param pointId * @return */ YwPointVO countNotFinishedWorkOrderByPointId(@Param("pointId") Integer pointId); /** * 统计某点位对应的未完成工单数量,理论上最大值为1个工单 * * @param serialNumber * @return */ YwPointVO countNotFinishedWorkOrderByGb(@Param("serialNumber") String serialNumber); } ycl-server/src/main/java/com/ycl/platform/service/ReportAuditingRecordService.java
New file @@ -0,0 +1,11 @@ package com.ycl.platform.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.ReportAuditingRecord; /** * @author:xp * @date:2024/9/1 21:07 */ public interface ReportAuditingRecordService extends IService<ReportAuditingRecord> { } ycl-server/src/main/java/com/ycl/platform/service/ReportErrorTypeService.java
New file @@ -0,0 +1,11 @@ package com.ycl.platform.service; import com.baomidou.mybatisplus.extension.service.IService; import com.ycl.platform.domain.entity.ReportErrorType; /** * @author:xp * @date:2024/9/1 15:48 */ public interface ReportErrorTypeService extends IService<ReportErrorType> { } ycl-server/src/main/java/com/ycl/platform/service/impl/ReportAuditingRecordServiceImpl.java
New file @@ -0,0 +1,18 @@ package com.ycl.platform.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.ReportAuditingRecord; import com.ycl.platform.mapper.ReportAuditingRecordMapper; import com.ycl.platform.service.ReportAuditingRecordService; import org.springframework.stereotype.Service; /** * @author:xp * @date:2024/9/1 21:08 */ @Service public class ReportAuditingRecordServiceImpl extends ServiceImpl<ReportAuditingRecordMapper, ReportAuditingRecord> implements ReportAuditingRecordService { } ycl-server/src/main/java/com/ycl/platform/service/impl/ReportErrorTypeServiceImpl.java
New file @@ -0,0 +1,15 @@ package com.ycl.platform.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.entity.ReportErrorType; import com.ycl.platform.mapper.ReportErrorTypeMapper; import com.ycl.platform.service.ReportErrorTypeService; import org.springframework.stereotype.Service; /** * @author:xp * @date:2024/9/1 15:49 */ @Service public class ReportErrorTypeServiceImpl extends ServiceImpl<ReportErrorTypeMapper, ReportErrorType> implements ReportErrorTypeService { } ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java
@@ -2,27 +2,32 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.platform.domain.dto.ReportImportDTO; import com.ycl.platform.domain.entity.Report; import com.ycl.platform.domain.entity.YwPeople; import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.form.ReportAuditingForm; import com.ycl.platform.domain.form.ReportForm; import com.ycl.platform.domain.query.ReportQuery; import com.ycl.platform.domain.vo.ReportVO; import com.ycl.platform.domain.vo.YwPointVO; import com.ycl.platform.mapper.ReportMapper; import com.ycl.platform.mapper.YwPeopleMapper; import com.ycl.platform.mapper.YwPointMapper; import com.ycl.platform.mapper.YwUnitMapper; import com.ycl.platform.service.ReportAuditingRecordService; import com.ycl.platform.service.ReportErrorTypeService; import com.ycl.platform.service.ReportService; import com.ycl.system.Result; import com.ycl.system.entity.SysDictData; import com.ycl.system.page.PageUtil; import com.ycl.system.service.ISysDictTypeService; import com.ycl.utils.DateUtils; import com.ycl.utils.SecurityUtils; import com.ycl.utils.StringUtils; import com.ycl.utils.html.EscapeUtil; import com.ycl.utils.poi.ExcelUtil; import com.ycl.utils.uuid.IdUtils; import enumeration.general.ErrorTypeEnum; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; @@ -31,9 +36,9 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -50,6 +55,9 @@ private final YwUnitMapper unitMapper; private final YwPointMapper ywpointMapper; private final YwPeopleMapper peopleMapper; private final ReportErrorTypeService reportErrorTypeService; private final ISysDictTypeService dictTypeService; private final ReportAuditingRecordService reportAuditingRecordService; /** * 添加 @@ -57,6 +65,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public Result add(ReportForm form) { if (Objects.isNull(form.getPointId())) { throw new RuntimeException("点位不能为空"); @@ -65,18 +74,37 @@ YwPeople people = new LambdaQueryChainWrapper<>(peopleMapper).eq(YwPeople::getUserId, userId).one(); form.setPeopleId(people.getId()); form.setUnitId(people.getBelongUnit()); if ("事前报备".equals(form.getReportType())) { // 如果是事前报备需要检验是否已经生成下发工单 YwPointVO point = ywpointMapper.countNotFinishedWorkOrderByGb(form.getPointId()); if (Objects.nonNull(point)) { throw new RuntimeException(String.format("点位【%s】已经存在下发工单,无法事前报备", point.getPointName())); } } YwPoint point = new LambdaQueryChainWrapper<>(ywpointMapper) .eq(YwPoint::getSerialNumber, form.getPointId()) .one(); if (Objects.isNull(point)) { throw new RuntimeException("点位不存在"); } Report entity = ReportForm.getEntityByForm(form, null); entity.setSerialNumber(form.getPointId()); entity.setErrorType(String.join(",", form.getErrorType())); entity.setSerialNumber(point.getSerialNumber()); entity.setStatus(0); entity.setIdentify(IdUtils.randomNO()); Date now = new Date(); entity.setCreateTime(now); entity.setUpdateTime(now); if(baseMapper.insert(entity) > 0) { return Result.ok("添加成功"); } return Result.error("添加失败"); baseMapper.insert(entity); List<ReportErrorType> errorTypeList = form.getErrorTypeList().stream().map(item -> { ReportErrorType reportErrorType = new ReportErrorType(); reportErrorType.setErrorType(item); reportErrorType.setDeleted(0); reportErrorType.setCreateTime(now); reportErrorType.setReportId(entity.getId()); return reportErrorType; }).collect(Collectors.toList()); reportErrorTypeService.saveBatch(errorTypeList); return Result.ok("报备成功"); } @Override @@ -90,9 +118,6 @@ @SneakyThrows @Transactional public Result importData(ReportForm form) { if (Objects.isNull(form.getImportPointId())) { throw new RuntimeException("点位不能为空"); } Long userId = SecurityUtils.getUserId(); YwPeople people = new LambdaQueryChainWrapper<>(peopleMapper).eq(YwPeople::getUserId, userId).one(); form.setPeopleId(people.getId()); @@ -101,22 +126,43 @@ ExcelUtil<ReportImportDTO> excelUtil = new ExcelUtil<>(ReportImportDTO.class); List<ReportImportDTO> list = excelUtil.importExcel(form.getImportPointId().getInputStream()); // 批量插入 ArrayList<Report> reports = new ArrayList<>(); long l = System.currentTimeMillis(); list.forEach( item -> { String pid = IdUtils.randomNO(); Integer success = 0; for (ReportImportDTO item : list) { if ("事前报备".equals(form.getReportType())) { // 如果是事前报备需要检验是否已经生成下发工单 YwPointVO point = ywpointMapper.countNotFinishedWorkOrderByGb(item.getSerialNumber()); if (Objects.nonNull(point)) { throw new RuntimeException(String.format("点位【%s】已经存在下发工单,无法事前报备", point.getPointName())); } } YwPoint point = new LambdaQueryChainWrapper<>(ywpointMapper) .eq(YwPoint::getSerialNumber, form.getPointId()) .one(); if (Objects.isNull(point)) { continue; } Report entity = ReportForm.getEntityByForm(form, null); entity.setImportBatchNumber(String.valueOf(l)); entity.setImportBatchNumber(pid); entity.setSerialNumber(item.getSerialNumber()); entity.setStatus(0); entity.setIdentify(IdUtils.randomNO()); entity.setCreateTime(DateUtils.getNowDate()); entity.setUpdateTime(DateUtils.getNowDate()); reports.add(entity); }); if (saveBatch(reports)) { return Result.ok("成功导入" + list.size() + "条数据"); Date now = DateUtils.getNowDate(); entity.setCreateTime(now); entity.setUpdateTime(now); baseMapper.insert(entity); List<ReportErrorType> errorTypeList = form.getErrorTypeList().stream().map(err -> { ReportErrorType reportErrorType = new ReportErrorType(); reportErrorType.setErrorType(err); reportErrorType.setDeleted(0); reportErrorType.setCreateTime(now); reportErrorType.setReportId(entity.getId()); return reportErrorType; }).collect(Collectors.toList()); reportErrorTypeService.saveBatch(errorTypeList); success++; } return Result.error("导入失败"); return Result.ok("报备点位数:" + list.size() + ",导入成功数:" + success); } /** @@ -125,6 +171,7 @@ * @return */ @Override @Transactional(rollbackFor = Exception.class) public Result update(ReportForm form) { Report entity = baseMapper.selectById(form.getId()); @@ -132,21 +179,36 @@ Assert.notNull(entity, "记录不存在"); Date now = new Date(); entity.setUpdateTime(now); if (0 == entity.getStatus()) { // 待审核的直接改 BeanUtils.copyProperties(form, entity); baseMapper.updateById(entity); } else if (2 == entity.getStatus()) { // 如果是未审核通过,进行修改,那么直接新增(为了保存审核记录) Report report = new Report(); BeanUtils.copyProperties(entity, report); BeanUtils.copyProperties(form, report); report.setId(null); report.setStatus(0); report.setAuditingTime(null); report.setAuditOpinion(null); baseMapper.insert(report); if ("事前报备".equals(form.getReportType())) { // 如果是事前报备需要检验是否已经生成下发工单 YwPointVO point = ywpointMapper.countNotFinishedWorkOrderByGb(form.getPointId()); if (Objects.nonNull(point)) { throw new RuntimeException(String.format("点位【%s】已经存在下发工单,无法事前报备", point.getPointName())); } } YwPoint point = new LambdaQueryChainWrapper<>(ywpointMapper) .eq(YwPoint::getSerialNumber, form.getPointId()) .one(); if (Objects.isNull(point)) { throw new RuntimeException("点位不存在"); } BeanUtils.copyProperties(form, entity); entity.setSerialNumber(form.getPointId()); // 重置为待审核 entity.setStatus(0); baseMapper.updateById(entity); new LambdaUpdateChainWrapper<>(reportErrorTypeService.getBaseMapper()) .eq(ReportErrorType::getReportId, form.getId()) .remove(); List<ReportErrorType> errorTypeList = form.getErrorTypeList().stream().map(err -> { ReportErrorType reportErrorType = new ReportErrorType(); reportErrorType.setErrorType(err); reportErrorType.setDeleted(0); reportErrorType.setCreateTime(now); reportErrorType.setReportId(entity.getId()); return reportErrorType; }).collect(Collectors.toList()); reportErrorTypeService.saveBatch(errorTypeList); return Result.ok("修改成功"); } @@ -185,7 +247,21 @@ public Result page(ReportQuery query) { IPage<ReportVO> page = PageUtil.getPage(query, ReportVO.class); baseMapper.page(page, query); page.getRecords().forEach(item -> item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType()))); List<SysDictData> errorTypeList = dictTypeService.selectDictDataByType("report_error_type"); Map<String, String> dictMap = errorTypeList.stream().collect(Collectors.toMap(SysDictData::getDictValue, SysDictData::getDictLabel)); page.getRecords().stream().forEach(item -> { if (StringUtils.hasText(item.getErrorType())) { item.setErrorTypeList(List.of(item.getErrorType().split(","))); StringBuilder sb = new StringBuilder(); item.getErrorTypeList().stream().forEach(err -> { String s = dictMap.get(err); if (org.springframework.util.StringUtils.hasText(s)) { sb.append(s).append("、"); } }); item.setErrorType(sb.substring(0, sb.length() - 1)); } }); return Result.ok().data(page).total(page.getTotal()); } @@ -196,10 +272,16 @@ */ @Override public Result detail(String id) { Report entity = baseMapper.selectById(id); Assert.notNull(entity, "记录不存在"); ReportVO vo = ReportVO.getVoByEntity(entity, null); vo.setPointId(vo.getSerialNumber()); List<ReportErrorType> errList = new LambdaQueryChainWrapper<>(reportErrorTypeService.getBaseMapper()) .select(ReportErrorType::getErrorType) .eq(ReportErrorType::getReportId, id) .list(); List<String> list = errList.stream().map(ReportErrorType::getErrorType).collect(Collectors.toList()); vo.setErrorTypeList(list); return Result.ok().data(vo); } @@ -224,7 +306,6 @@ page.setSize(-1); baseMapper.page(page, query); page.getRecords().forEach(item -> { item.setErrorType(ErrorTypeEnum.getEnumValue(item.getErrorType())); item.setReportContent(EscapeUtil.clean(item.getReportContent())); }); return page.getRecords(); @@ -238,6 +319,7 @@ } @Override @Transactional(rollbackFor = Exception.class) public Result auditing(ReportAuditingForm form) { Report report = baseMapper.selectById(form.getId()); if (Objects.isNull(report)) { @@ -248,9 +330,18 @@ } else { report.setStatus(2); } report.setAuditOpinion(form.getAuditOpinion()); report.setAuditingTime(new Date()); Date now = new Date(); report.setUpdateTime(now); baseMapper.updateById(report); // 添加一条审核记录 ReportAuditingRecord reportAuditingRecord = new ReportAuditingRecord(); reportAuditingRecord.setReportId(form.getId()); reportAuditingRecord.setDeleted(0); reportAuditingRecord.setCreateTime(now); reportAuditingRecord.setResultRemark(form.getAuditOpinion()); reportAuditingRecord.setResult(form.getAuditingResult()); reportAuditingRecordService.save(reportAuditingRecord); return Result.ok("操作成功"); } } ycl-server/src/main/java/com/ycl/platform/service/impl/YwPointServiceImpl.java
@@ -213,6 +213,9 @@ List<YwPoint> list = new LambdaQueryChainWrapper<>(baseMapper) .eq(YwPoint::getUnitId, unitId) .like(YwPoint::getPointName, keyword) .or() .eq(YwPoint::getUnitId, unitId) .like(YwPoint::getSerialNumber, keyword) .list(); List data = list.stream().map(item -> { Map map = new HashMap<String, Object>(); ycl-server/src/main/java/com/ycl/task/ContractTask.java
@@ -3,40 +3,34 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.mongodb.client.result.DeleteResult; import com.ycl.platform.domain.entity.*; import com.ycl.platform.domain.entity.ContractRuleRecord; import com.ycl.platform.domain.entity.ContractScore; import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.entity.YwPoint; import com.ycl.platform.domain.result.HK.PicAccessResult; import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult; import com.ycl.platform.domain.result.UY.RecordMetaDSumResult; import com.ycl.platform.domain.result.UY.VideoOnlineResult; import com.ycl.platform.domain.vo.CalculateRuleVO; import com.ycl.platform.domain.vo.ContractVO; import com.ycl.platform.domain.vo.ReportVO; import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.mapper.*; import com.ycl.platform.service.IContractScoreService; import com.ycl.utils.DateUtils; import constant.ApiConstants; import constant.RedisConstant; import enumeration.ContractRule; import enumeration.ErrorType; import enumeration.general.AuditingStatus; import enumeration.general.ErrorTypeEnum; import enumeration.general.RuleDeductCategoryEnum; import enumeration.general.WorkOrderStatusEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import javax.management.monitor.Monitor; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml
@@ -11,6 +11,8 @@ <result column="people_id" property="peopleId" /> <result column="serial_number" property="serialNumber" /> <result column="auditing_time" property="auditingTime" /> <result column="result" property="result" /> <result column="result_remark" property="resultRemark" /> <result column="report_content" property="reportContent" /> <result column="report_materials" property="reportMaterials" /> <result column="error_type" property="errorType" /> @@ -18,18 +20,21 @@ <select id="page" resultType="com.ycl.platform.domain.vo.ReportVO"> SELECT r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name r.id, r.report_materials, r.create_time, r.report_type, r.report_content, r.status, r.serial_number as pointId, r.begin_create_time, r.end_create_time, u.unit_name, p.yw_person_name as peopleName, pt.point_name, GROUP_CONCAT(DISTINCT ret.error_type SEPARATOR ',') AS errorType FROM t_report r LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0 LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0 LEFT JOIN t_yw_point pt ON r.serial_number = pt.serial_number and pt.deleted = 0 /* INNER JOIN ( SELECT identify,MAX(create_time) AS create_time FROM t_report WHERE deleted = 0 GROUP BY identify ) as rr ON r.create_time = rr.create_time*/ INNER JOIN t_report_error_type ret ON ret.report_id = r.id and ret.deleted = 0 <if test="query.errorTypeList != null and query.errorTypeList.size() > 0"> AND ret.error_type in <foreach collection="query.errorTypeList" open="(" separator="," close=")" item="errorType">#{errorType}</foreach> </if> WHERE r.deleted = 0 <if test="query.reportType != null and query.reportType != ''"> @@ -41,24 +46,27 @@ <if test="query.keyword != null and query.keyword != ''"> AND (pt.point_name like concat('%', #{query.keyword}, '%') OR p.yw_person_name like concat('%', #{query.keyword}, '%')) </if> GROUP BY r.id, r.report_materials, r.create_time, r.report_type, r.report_content, r.status, r.serial_number, r.begin_create_time, r.end_create_time, u.unit_name, p.yw_person_name, pt.point_name ORDER BY r.update_time DESC </select> <select id="examineRecord" resultMap="BaseResultMap"> SELECT r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name, ar.result, ar.result_remark, ar.create_time as auditing_time FROM t_report r t_report_auditing_record ar INNER JOIN t_report r ON ar.report_id = r.id AND ar.report_id = #{id} AND ar.deleted = 0 LEFT JOIN t_yw_unit u ON r.unit_id = u.id and u.deleted = 0 LEFT JOIN t_yw_people p ON r.people_id = p.id and p.deleted = 0 LEFT JOIN t_yw_point pt ON r.serial_number = pt.serial_number and pt.deleted = 0 INNER JOIN ( SELECT identify, create_time FROM t_report WHERE id = #{id} AND deleted = 0 ) as rr ON r.identify = rr.identify AND r.create_time <= rr.create_time ORDER BY r.create_time DESC ar.create_time DESC </select> <select id="selectNumberList" resultType="java.lang.String"> @@ -77,7 +85,7 @@ INNER JOIN t_work_order wo ON yo.serial_number = wo.serial_number AND wo.serial_number = #{serialNumber} AND wo.deleted = 0 WHERE r.status = 1 ORDER BY r.auditing_time DESC ORDER BY r.update_time DESC LIMIT 1 </select> ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -136,4 +136,31 @@ WHERE serial_number = #{point.serialNumber} </foreach> </update> <select id="countNotFinishedWorkOrderByPointId" resultType="com.ycl.platform.domain.vo.YwPointVO"> SELECT yp.id, yp.point_name, wo.serial_number FROM t_yw_point yp INNER JOIN t_work_order wo ON yp.serial_number = wo.serial_number AND wo.status not in ('AUDITING_SUCCESS','WAIT_DISTRIBUTE') AND wo.deleted = 0 AND yp.deleted = 0 WHERE yp.id = #{pointId} </select> <select id="countNotFinishedWorkOrderByGb" resultType="com.ycl.platform.domain.vo.YwPointVO"> SELECT yp.id, yp.point_name, wo.serial_number FROM t_yw_point yp INNER JOIN t_work_order wo ON yp.serial_number = wo.serial_number AND wo.status not in ('AUDITING_SUCCESS','WAIT_DISTRIBUTE') AND wo.deleted = 0 AND yp.deleted = 0 AND yp.serial_number = #{serialNumber} LIMIT 1 </select> </mapper>