From 36e5600e3497d97b42376c5f096d85891f1ad94b Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期二, 30 四月 2024 16:50:12 +0800 Subject: [PATCH] 改为连表查询 --- ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 62 +++++++++++++-- ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java | 2 ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java | 1 ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml | 25 ++++++ ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 56 +------------ ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java | 8 ++ ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java | 44 ---------- 7 files changed, 97 insertions(+), 101 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java index 93cb878..29b973e 100644 --- a/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java +++ b/ycl-server/src/main/java/com/ycl/platform/controller/WorkOrderController.java @@ -8,6 +8,7 @@ import com.ycl.system.Result; import com.ycl.system.domain.group.Add; import com.ycl.system.domain.group.Update; +import com.ycl.utils.PageUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import jakarta.validation.constraints.NotEmpty; diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java index 802abaf..46f7518 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/ReportMapper.java @@ -2,6 +2,7 @@ import com.ycl.platform.domain.entity.Report; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.query.ReportQuery; import com.ycl.platform.domain.vo.ReportVO; import com.ycl.platform.domain.form.ReportForm; import java.util.List; @@ -16,4 +17,5 @@ @Mapper public interface ReportMapper extends BaseMapper<Report> { + List<ReportVO> page(ReportQuery query); } diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java index b9a996c..e44019b 100644 --- a/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java +++ b/ycl-server/src/main/java/com/ycl/platform/mapper/WorkOrderMapper.java @@ -1,11 +1,15 @@ package com.ycl.platform.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.ycl.platform.domain.entity.WorkOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.platform.domain.query.DistributeWorkOrderQuery; +import com.ycl.platform.domain.query.WorkOrderQuery; import com.ycl.platform.domain.vo.WorkOrderVO; import com.ycl.platform.domain.form.WorkOrderForm; import java.util.List; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; /** * 宸ュ崟 Mapper 鎺ュ彛 @@ -16,4 +20,8 @@ @Mapper public interface WorkOrderMapper extends BaseMapper<WorkOrder> { + void page(IPage page, @Param("query") WorkOrderQuery query); + + List<WorkOrderVO> distributePage(@Param("query") DistributeWorkOrderQuery query); + } diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java index f863d3f..46aee9b 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ReportServiceImpl.java @@ -116,48 +116,8 @@ */ @Override public Result page(ReportQuery query) { - - if (StringUtils.isNotBlank(query.getPointId())) { - LambdaQueryWrapper<YwPoint> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.like(YwPoint::getPointName, query.getPointId()); - query.setPointIdList(ywpointMapper.selectList(queryWrapper).stream().map(YwPoint::getId).collect(Collectors.toList())); - if(CollectionUtils.isEmpty(query.getPointIdList())) { - return Result.ok(); - } - } - if (StringUtils.isNotBlank(query.getPeopleId())) { - LambdaQueryWrapper<YwPeople> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.like(YwPeople::getYwPersonName, query.getPeopleId()); - query.setPeopleIdList(peopleMapper.selectList(queryWrapper).stream().map(YwPeople::getId).collect(Collectors.toList())); - if(CollectionUtils.isEmpty(query.getPeopleIdList())) { - return Result.ok(); - } - } - - IPage<Report> page = new LambdaQueryChainWrapper<>(baseMapper) - .eq(StringUtils.isNotBlank(query.getReportType()), Report::getReportType, query.getReportType()) - .le(Objects.nonNull(query.getBeginCreateTime()), Report::getBeginCreateTime, query.getBeginCreateTime()) - .ge(Objects.nonNull(query.getEndCreateTime()), Report::getEndCreateTime, query.getEndCreateTime()) - .in(!CollectionUtils.isEmpty(query.getPointIdList()), Report::getPointId, query.getPointIdList()) - .in(!CollectionUtils.isEmpty(query.getPeopleIdList()), Report::getPeopleId, query.getPeopleIdList()) - .orderByDesc(Report::getCreateTime) - .page(PageUtil.getPage(query, Report.class)); - - List<ReportVO> vos = page.getRecords().stream() - .map( - entity -> { - ReportVO vo = ReportVO.getVoByEntity(entity, null); - YwUnit unit = unitMapper.selectById(vo.getUnitId()); - vo.setUnitName(unit.getUnitName()); - YwPeople ywPeople = peopleMapper.selectById(vo.getPeopleId()); - vo.setPeopleName(ywPeople.getYwPersonName()); - YwPoint ywPoint = ywpointMapper.selectById(vo.getPointId()); - vo.setPointName(ywPoint.getPointName()); - return vo; - } - ) - .collect(Collectors.toList()); - return Result.ok().data(vos).total(page.getTotal()); + List<ReportVO> page = baseMapper.page(query); + return Result.ok().data(page).total(page.size()); } /** diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java index 68d709a..abc41bd 100644 --- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -130,6 +130,7 @@ } // 宸ュ崟鐘舵�� workOrder.setStatus(WorkOrderStatusEnum.YW_HANDLE); + workOrder.setYwHandleTime(LocalDateTime.now()); baseMapper.updateById(workOrder); // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰� WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord(); @@ -212,60 +213,15 @@ */ @Override public Result page(WorkOrderQuery query) { - IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) - .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo()) - .eq(StringUtils.hasText(query.getStatus().getValue()), WorkOrder::getStatus, query.getStatus()) - .eq(StringUtils.hasText(query.getErrorType()), WorkOrder::getErrorType, query.getErrorType()) - .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()), - WorkOrder::getYwHandleTime, - DateUtils.getDayStart(query.getStart()), - DateUtils.getDayEnd(query.getEnd())) - .orderByDesc(WorkOrder::getCreateTime) - .page(PageUtil.getPage(query, WorkOrder.class)); - - List<WorkOrderVO> vos = page.getRecords().stream() - .map( - entity -> { - WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); - YwUnit unit = ywUnitMapper.selectById(vo.getUnitId()); - if (Objects.nonNull(unit)) { - vo.setUnitName(unit.getUnitName()); - } - YwPeople ywPeople = ywPeopleMapper.selectById(vo.getYwPeopleId()); - if (Objects.nonNull(ywPeople)) { - vo.setYwPeopleName(ywPeople.getYwPersonName()); - } - return vo; - } - ) - .collect(Collectors.toList()); - return Result.ok().data(vos).total(page.getTotal()); + IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class); + baseMapper.page(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); } @Override public Result distributePage(DistributeWorkOrderQuery query) { - IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) - .eq(Objects.nonNull(query.getUnitId()), WorkOrder::getUnitId, query.getUnitId()) - .eq(WorkOrder::getStatus, WorkOrderStatusEnum.WAIT_DISTRIBUTE) - .orderByDesc(WorkOrder::getCreateTime) - .page(PageUtil.getPage(query, WorkOrder.class)); - List<WorkOrderVO> vos = page.getRecords().stream() - .map( - entity -> { - WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); - YwUnit unit = ywUnitMapper.selectById(vo.getUnitId()); - if (Objects.nonNull(unit)) { - vo.setUnitName(unit.getUnitName()); - } - YwPeople ywPeople = ywPeopleMapper.selectById(vo.getYwPeopleId()); - if (Objects.nonNull(ywPeople)) { - vo.setYwPeopleName(ywPeople.getYwPersonName()); - } - return vo; - } - ) - .collect(Collectors.toList()); - return Result.ok().data(vos).total(page.getTotal()); + List<WorkOrderVO> page = baseMapper.distributePage(query); + return Result.ok().data(page).total(page.size()); } @Override diff --git a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml index 8e237d6..17b7c91 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/ReportMapper.xml @@ -16,4 +16,29 @@ <result column="error_type" property="errorType" /> </resultMap> + <select id="page" resultType="com.ycl.platform.domain.vo.ReportVO"> + SELECT + r.*, u.unit_name, p.yw_person_name as peopleName, pt.point_name + 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.point_id = pt.id and pt.deleted = '0' + where + r.deleted = '0' + <if test="reportType != null and reportType != ''"> + AND r.report_type = #{reportType} + </if> + <if test="beginCreateTime != null"> + AND r.create_time between #{beginCreateTime} and #{endCreateTime} + </if> + <if test="pointId != null and pointId != ''"> + AND pt.point_name like concat('%', #{pointId}, '%') + </if> + <if test="peopleId != null and peopleId != ''"> + AND p.yw_person_name like concat('%', #{peopleId}, '%') + </if> + ORDER BY r.create_time DESC + </select> + </mapper> diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml index 2c73866..0c5ab30 100644 --- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml +++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml @@ -4,15 +4,59 @@ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.WorkOrderVO"> - <result column="id" property="id" /> - <result column="create_time" property="createTime" /> - <result column="work_order_no" property="workOrderNo" /> - <result column="unit_id" property="unitId" /> - <result column="yw_people_id" property="ywPeopleId" /> - <result column="yw_handle_time" property="ywHandleTime" /> - <result column="yw_result" property="ywResult" /> - <result column="yw_condition" property="ywCondition" /> - <result column="yw_check_result" property="ywCheckResult" /> + <result column="id" property="id"/> + <result column="create_time" property="createTime"/> + <result column="work_order_no" property="workOrderNo"/> + <result column="unit_id" property="unitId"/> + <result column="yw_people_id" property="ywPeopleId"/> + <result column="yw_handle_time" property="ywHandleTime"/> + <result column="yw_result" property="ywResult"/> + <result column="yw_condition" property="ywCondition"/> + <result column="yw_check_result" property="ywCheckResult"/> </resultMap> + <select id="page" resultType="com.ycl.platform.domain.vo.WorkOrderVO"> + SELECT + wo.*, + u.unit_name, + p.yw_person_name + FROM + t_work_order wo + LEFT JOIN t_yw_unit u ON wo.unit_id = u.id and u.deleted = '0' + LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id and p.deleted = '0' + where + wo.deleted = '0' + <if test="query.workOrderNo != null and query.workOrderNo != ''"> + AND wo.work_order_no = #{query.workOrderNo} + </if> + <if test="query.status != null"> + AND wo.status = #{query.status} + </if> + <if test="query.errorType != null and query.errType != ''"> + AND wo.error_type = #{query.errorType} + </if> + <if test="query.start != null"> + AND wo.yw_handle_time BETWEEN #{query.start} AND #{query.end} + </if> + ORDER BY wo.create_time DESC + </select> + + <select id="distributePage" resultType="com.ycl.platform.domain.vo.WorkOrderVO"> + SELECT + wo.*, + u.unit_name, + p.yw_person_name + FROM + t_work_order wo + LEFT JOIN t_yw_unit u ON wo.unit_id = u.id and u.deleted = '0' + LEFT JOIN t_yw_people p ON wo.yw_people_id = p.id and p.deleted = '0' + where + wo.deleted = '0' + and wo.status = 'WAIT_DISTRIBUTE' + <if test="query.unitId != null"> + AND wo.unit_id = #{query.unitId} + </if> + ORDER BY wo.create_time DESC + </select> + </mapper> -- Gitblit v1.8.0