From 7f3938776dc92877a642b4976e2e9cd3f5da5c24 Mon Sep 17 00:00:00 2001 From: wangqian <1406304305@qq.com> Date: Wed, 27 May 2026 12:04:05 +0800 Subject: [PATCH] app首页统计 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java | 11 ++++++----- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryReqVo.java | 26 ++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryRspVo.java | 24 ++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryVo.java | 24 ++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java | 10 ++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java | 16 +++++++++++----- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++---- urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml | 26 ++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java | 1 + urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/AppMainInfoController.java | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/vo/AppMainInfoPageReqVO.java | 32 ++++++++++++++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java | 21 +++++++++++++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java | 10 ++++++++++ urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java | 5 +++++ 14 files changed, 371 insertions(+), 14 deletions(-) create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryReqVo.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryRspVo.java create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryVo.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/AppMainInfoController.java create mode 100644 urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/vo/AppMainInfoPageReqVO.java diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java index 3ff0794..210294c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/AppHomepageSummaryController.java @@ -2,10 +2,7 @@ package com.zteits.urbanops.module.garden.controller.app.homepage; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryPageReqVO; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryReqVO; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*; import com.zteits.urbanops.module.garden.service.homepage.HomepageSummaryService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -15,7 +12,6 @@ import jakarta.validation.Valid; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Map; import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; @@ -51,4 +47,9 @@ public class AppHomepageSummaryController { homepageSummaryService.countTaskNumberByUserId(busiDate); } + @PostMapping("/iWorkOrderSummary") + @Operation(summary = "工单情况统计") + public CommonResult> iWorkOrderSummary(@Valid @RequestBody AppWorkOrderSummaryReqVo req) { + return success(homepageSummaryService.iWorkOrderSummary(req)); + } } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryReqVo.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryReqVo.java new file mode 100644 index 0000000..e137d42 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryReqVo.java @@ -0,0 +1,26 @@ +package com.zteits.urbanops.module.garden.controller.app.homepage.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +/** + * @Classname AppWorkOrderSummaryReqVo + * @Description 全域工单统计 + * @Date 2026/5/26 23:42 + * @Created by wangqian + */ +@Data +public class AppWorkOrderSummaryReqVo { + + @NotEmpty + @Schema(description = "查询类型", example = "0:全部工单 1:全域工单") + public String queryType; + @NotEmpty + @Schema(description = "开始时间", example = "2025-01-01") + public String beginTime; + /*结束时间*/ + @NotEmpty + @Schema(description = "结束时间", example = "2025-12-10") + public String endTime; +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryRspVo.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryRspVo.java new file mode 100644 index 0000000..51b6af5 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryRspVo.java @@ -0,0 +1,24 @@ +package com.zteits.urbanops.module.garden.controller.app.homepage.vo; + +import lombok.Data; + +import java.util.List; + +/** + * @Classname TaskCompletionStatusRspVo + * @Description 任务完成情况 + * @Date 2026/1/7 9:44 + * @Created by wangqian + */ +@Data +public class AppWorkOrderSummaryRspVo { + /*单位名称列表*/ + private List legend; + /*总条数*/ + private String totalNum; + /*占比*/ + private List percents; + /*单位工单统计*/ + private List table; + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryVo.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryVo.java new file mode 100644 index 0000000..aecca2c --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/homepage/vo/AppWorkOrderSummaryVo.java @@ -0,0 +1,24 @@ +package com.zteits.urbanops.module.garden.controller.app.homepage.vo; + +import lombok.Data; + +/** + * @Classname TaskCompletionStatusRspVo + * @Description 任务完成情况 + * @Date 2026/1/7 9:44 + * @Created by wangqian + */ +@Data +public class AppWorkOrderSummaryVo { + + /*公司ID*/ + private Long companyId; + /*公司名称*/ + private String companyName; + /*总工单数量*/ + private Integer total; + /* 已完成数量*/ + private Integer finish; + /*待完成数量*/ + private Integer ongoing; +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java index c811deb..d97391b 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/homepage/HomepageSummaryMapper.java @@ -6,6 +6,7 @@ import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitTask import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderRespVo; import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.CommitWorkOrderSourceRespVo; import com.zteits.urbanops.module.garden.controller.admin.homepage.vo.WorkOrderTrendRespVo; +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppWorkOrderSummaryVo; import com.zteits.urbanops.module.garden.controller.app.homepage.vo.CommonTaskStatusVo; import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; @@ -206,4 +207,13 @@ public interface HomepageSummaryMapper extends BaseMapperX { * @Date 2026/1/12 0:45 */ List getUserAll(@Param("busiDate") String busiDate); + + /** + * @Author wangqian + * @Description 按单位+时间统计工单数量 总量 | 已完成| + * @Date 2026/5/26 22:46 + * @Param null + * @Return + */ + List countWorkOrder(@Param("queryType") String queryType, @Param("beginTime") String beginTime, @Param("endTime") String endTime); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java index a3ab4b9..80aed14 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryService.java @@ -1,13 +1,9 @@ package com.zteits.urbanops.module.garden.service.homepage; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryPageReqVO; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.AppHomePageSummaryReqVO; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskCompletionStatusRspVo; -import com.zteits.urbanops.module.garden.controller.app.homepage.vo.TaskDetailsRspVo; +import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*; import java.util.List; -import java.util.Map; /** * @Classname HomepageSummaryService @@ -42,4 +38,14 @@ public interface HomepageSummaryService { * @Return void */ public void countTaskNumberByUserId(String busiDate); + /** + * @Author wangqian + * @Description 工单情况统计 + * @Date 2026/5/26 22:34 + * @Param req + * @Return java.util.List + */ + List iWorkOrderSummary(AppWorkOrderSummaryReqVo req); + + } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java index ccc02bc..84a08fa 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/homepage/HomepageSummaryServiceImpl.java @@ -5,9 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.esotericsoftware.minlog.Log; import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.util.date.DateUtils; import com.zteits.urbanops.framework.common.util.date.LocalDateTimeUtils; -import com.zteits.urbanops.framework.mybatis.core.query.QueryWrapperX; import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; import com.zteits.urbanops.module.garden.controller.app.homepage.vo.*; @@ -17,7 +15,6 @@ import com.zteits.urbanops.module.garden.dal.mysql.taskstatistics.TaskStatistics import com.zteits.urbanops.module.system.api.dept.DeptApi; import com.zteits.urbanops.module.system.api.permission.RoleApi; import com.zteits.urbanops.module.system.api.user.AdminUserApi; -import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; import jakarta.annotation.Resource; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -28,7 +25,6 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; -import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -287,6 +283,56 @@ public class HomepageSummaryServiceImpl implements HomepageSummaryService{ //批量保存 taskStatisticsMapper.insertBatch(taskStatisticsDOList); } + + @Override + public List iWorkOrderSummary(AppWorkOrderSummaryReqVo req) { + // 1. 创建返回对象 + AppWorkOrderSummaryRspVo respVo = new AppWorkOrderSummaryRspVo(); + + // 2. 查询工单列表 + List workOrderList = homepageSummaryMapper.countWorkOrder( + req.getQueryType(), + req.getBeginTime(), + req.getEndTime() + ); + + // 3. 提取公司名称列表(修复:toList() 或 toList()) + List companyNameList = workOrderList.stream() + .map(AppWorkOrderSummaryVo::getCompanyName) + .collect(Collectors.toList()); + + // 4. 总数量求和 + int totalNum = workOrderList.stream() + .mapToInt(AppWorkOrderSummaryVo::getTotal) + .sum(); + + List percents; + if (totalNum <= 0) { + percents = Collections.singletonList(0); + } else { + // 3. 先计算四舍五入占比 + List tempPercents = workOrderList.stream() + .map(vo -> (int) Math.round((vo.getTotal() * 100.0) / totalNum)) + .collect(Collectors.toList()); + + // 4. 核心:修正总和 = 100%(把差值补到最后一项) + int sum = tempPercents.stream().mapToInt(Integer::intValue).sum(); + int diff = 100 - sum; + if (diff != 0 && !tempPercents.isEmpty()) { + int lastIndex = tempPercents.size() - 1; + tempPercents.set(lastIndex, tempPercents.get(lastIndex) + diff); + } + percents = tempPercents; + } + // 6. 封装返回数据 + respVo.setLegend(companyNameList); + respVo.setTable(workOrderList); + respVo.setTotalNum(String.valueOf(totalNum)); // 转字符串 + respVo.setPercents(percents); //占比 + // 7. 包装成 List 返回(因为方法声明返回 List) + return List.of(respVo); + } + /** * @Author wangqian * @Description 初始化对象集合 diff --git a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml index d66ea61..bef2204 100644 --- a/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml +++ b/urbanops-module-garden/src/main/resources/mapper/homepage/HomepageSummaryMapper.xml @@ -587,4 +587,30 @@ INNER JOIN dept_recursive dr ON u.dept_id = dr.id GROUP BY u.id, u.nickname, u.dept_id, u.busi_line, dr.companyId, dr.companyName; + + + + + diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java index 6db260e..ee335d4 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/maininfo/vo/MainInfoPageReqVO.java @@ -130,4 +130,5 @@ public class MainInfoPageReqVO extends PageParam { @Schema(description = "部门id") private Set deptIds; + } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/AppMainInfoController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/AppMainInfoController.java new file mode 100644 index 0000000..dab8add --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/AppMainInfoController.java @@ -0,0 +1,125 @@ +package com.zteits.urbanops.module.workorder.controller.app.maininfo; + +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.framework.excel.core.util.ExcelUtils; +import com.zteits.urbanops.module.system.api.user.AdminUserApi; +import com.zteits.urbanops.module.system.api.user.dto.AdminUserRespDTO; +import com.zteits.urbanops.module.system.dal.dataobject.dept.DeptDO; +import com.zteits.urbanops.module.system.service.dept.DeptService; +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.AdminMainInfoRespVO; +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; +import com.zteits.urbanops.module.workorder.controller.app.maininfo.vo.AppMainInfoPageReqVO; +import com.zteits.urbanops.module.workorder.convert.maininfo.MainInfoConvert; +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; +import com.zteits.urbanops.module.workorder.dto.MainInfoRespVO; +import com.zteits.urbanops.module.workorder.service.attachment.AttachmentService; +import com.zteits.urbanops.module.workorder.service.maininfo.MainInfoService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +import static com.zteits.urbanops.framework.apilog.core.enums.OperateTypeEnum.EXPORT; +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; + +@Tag(name = "app - 工单信息") +@RestController +@RequestMapping("/workorder/main-info") +@Validated +public class AppMainInfoController { + + @Resource + private MainInfoService mainInfoService; + + @Resource + private AttachmentService attachmentService; + + @Resource + private DeptService deptService; + @Resource + private AdminUserApi adminUserApi; + + @GetMapping("/get") + @Operation(summary = "获得工单信息") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')") + public CommonResult getMainInfo(@RequestParam("id") Long id) { + MainInfoDO mainInfo = mainInfoService.getMainInfo(id); + + // 若订单号列表非空,查询附件;否则跳过 + Map attachmentMap = Collections.emptyMap(); + if (mainInfo != null) { + List attachmentDOList = attachmentService.getAttachmentByOrderNo(Arrays.asList(mainInfo.getOrderNo())); + // 构建订单号→附件对象的映射(处理重复key,取第一个对象) + if (!CollectionUtils.isEmpty(attachmentDOList)) { + attachmentMap = attachmentDOList.stream() + .filter(attachmentDO -> "01".equals(attachmentDO.getBusiType())) + .collect(Collectors.toMap( + AttachmentDO::getOrderNo, // key:订单号 + attachmentDO -> attachmentDO, // value:附件对象 + (existing, replacement) -> existing // 重复key时保留已有值 + )); + } + } + + String companyName = ""; + if (mainInfo.getWorkerCompanyId() != null) { + DeptDO dept = deptService.getDept(mainInfo.getWorkerCompanyId()); + if (dept != null) { + companyName = dept.getName(); + } + } + + Set userIds = new HashSet<>(); + if (mainInfo.getCoHandlers() != null) { + mainInfo.getCoHandlers().stream() + .filter(Objects::nonNull) // 过滤null ID + .forEach(userIds::add); + } + userIds.add(mainInfo.getUserId()); + Map userMap = adminUserApi.getUserMap(userIds); + return success(MainInfoConvert.INSTANCE.buildMainInfo(mainInfo, attachmentMap, companyName, userMap)); + } + + @GetMapping("/page") + @Operation(summary = "获得工单信息分页") + @PreAuthorize("@ss.hasPermission('workorder:main-info:query')") + public CommonResult> getMainInfoPage(@Valid AppMainInfoPageReqVO pageReqVO) { + + PageResult pageResult = mainInfoService.selectPageExcludeQuickOrder(pageReqVO); + // 6. 转换并返回结果 + return success(MainInfoConvert.INSTANCE.buildMainInfoPage(pageResult, null, null, null)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出工单信息 Excel") + @PreAuthorize("@ss.hasPermission('workorder:main-info:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportMainInfoExcel(@Valid MainInfoPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = mainInfoService.getMainInfoPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "工单信息.xls", "数据", MainInfoRespVO.class, + BeanUtils.toBean(list, MainInfoRespVO.class)); + } + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/vo/AppMainInfoPageReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/vo/AppMainInfoPageReqVO.java new file mode 100644 index 0000000..ebe0104 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/app/maininfo/vo/AppMainInfoPageReqVO.java @@ -0,0 +1,32 @@ +package com.zteits.urbanops.module.workorder.controller.app.maininfo.vo; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "APP - 工单信息分页 Request VO") +@Data +public class AppMainInfoPageReqVO extends PageParam { + + @Schema(description = "工单号") + private String orderNo; + + @Schema(description = "工单名称", example = "张三") + private String orderName; + + @Schema(description = "审批状态", example = "2") + private Integer status; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + + @Schema(description = "实施人员部门id", example = "12") + private Long workerCompanyId; + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java index 8e81494..dd8083a 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.module.workorder.controller.app.maininfo.vo.AppMainInfoPageReqVO; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; import org.apache.ibatis.annotations.Mapper; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; @@ -135,4 +136,24 @@ public interface MainInfoMapper extends BaseMapperX { return selectList(new QueryWrapper().in(field, values)); } + /** + * 获得工单信息分页 不查询快速工单 + * + * @param reqVO 分页查询 + * @return 工单信息分页 + */ + default PageResult selectPageExcludeQuickOrder(AppMainInfoPageReqVO reqVO) { + + LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX<>(); + // 不查询快速工单 → 订单类型 != "Q" + queryWrapper.ne(MainInfoDO::getOrderType, "Q"); + queryWrapper.eqIfPresent(MainInfoDO::getWorkerCompanyId, reqVO.getWorkerCompanyId()) + .likeIfPresent(MainInfoDO::getOrderNo, reqVO.getOrderNo()) + .likeIfPresent(MainInfoDO::getOrderName, reqVO.getOrderName()) + .eqIfPresent(MainInfoDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(MainInfoDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MainInfoDO::getId); + return selectPage(reqVO, queryWrapper); + } + } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java index 1946551..904d5d2 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoService.java @@ -1,6 +1,8 @@ package com.zteits.urbanops.module.workorder.service.maininfo; import java.util.*; + +import com.zteits.urbanops.module.workorder.controller.app.maininfo.vo.AppMainInfoPageReqVO; import jakarta.validation.*; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.*; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; @@ -67,4 +69,12 @@ public interface MainInfoService { */ MainInfoDO getMainInfoByOrderNo(String orderNo); + /** + * 获得工单信息分页 + * + * @param pageReqVO 分页查询 + * @return 工单信息分页 + */ + PageResult selectPageExcludeQuickOrder(AppMainInfoPageReqVO pageReqVO); + } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java index acd3a1f..eaf1bc1 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/maininfo/MainInfoServiceImpl.java @@ -4,6 +4,7 @@ import com.zteits.urbanops.framework.common.pojo.PageResult; import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoSaveReqVO; +import com.zteits.urbanops.module.workorder.controller.app.maininfo.vo.AppMainInfoPageReqVO; import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; import com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper; import jakarta.annotation.Resource; @@ -82,4 +83,8 @@ public class MainInfoServiceImpl implements MainInfoService { return mainInfoMapper.selectOne(MainInfoDO::getOrderNo, orderNo); } + public PageResult selectPageExcludeQuickOrder(AppMainInfoPageReqVO pageReqVO) { + return mainInfoMapper.selectPageExcludeQuickOrder(pageReqVO); + } + } -- libgit2 0.21.4