| | |
| | | /* |
| | | * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * Redistributions of source code must retain the above copyright notice, |
| | | * this list of conditions and the following disclaimer. |
| | | * Redistributions in binary form must reproduce the above copyright |
| | | * notice, this list of conditions and the following disclaimer in the |
| | | * documentation and/or other materials provided with the distribution. |
| | | * Neither the name of the dreamlu.net developer nor the names of its |
| | | * contributors may be used to endorse or promote products derived from |
| | | * this software without specific prior written permission. |
| | | * Author: Chill 庄骞 (smallchill@163.com) |
| | | */ |
| | | package org.sxkj.gd.workorder.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiParam; |
| | | import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; |
| | | import lombok.AllArgsConstructor; |
| | | import javax.validation.Valid; |
| | | |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.mp.support.Query; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import org.sxkj.gd.workorder.entity.GdWorkOrderFlowEntity; |
| | | import org.sxkj.gd.workorder.vo.GdWorkOrderFlowVO; |
| | | import org.sxkj.gd.workorder.excel.GdWorkOrderFlowExcel; |
| | | import org.sxkj.gd.workorder.wrapper.GdWorkOrderFlowWrapper; |
| | | import org.sxkj.gd.workorder.service.IGdWorkOrderFlowService; |
| | | import org.springblade.core.boot.ctrl.BladeController; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.excel.util.ExcelUtil; |
| | | import org.springblade.core.mp.support.Condition; |
| | | import org.springblade.core.secure.BladeUser; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.constant.BladeConstant; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.sxkj.gd.workorder.entity.GdWorkOrderFlowEntity; |
| | | import org.sxkj.gd.workorder.excel.GdWorkOrderFlowExcel; |
| | | import org.sxkj.gd.workorder.service.IGdWorkOrderFlowService; |
| | | import org.sxkj.gd.workorder.vo.GdWorkOrderFlowVO; |
| | | import org.sxkj.gd.workorder.vo.WorkOrderStageVO; |
| | | import org.sxkj.gd.workorder.wrapper.GdWorkOrderFlowWrapper; |
| | | import springfox.documentation.annotations.ApiIgnore; |
| | | import java.util.Map; |
| | | import java.util.List; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 流程记录表 控制器 |
| | |
| | | return R.data(GdWorkOrderFlowWrapper.build().entityVO(detail)); |
| | | } |
| | | /** |
| | | * 流程记录表 分页 |
| | | * 流程记录表 列表 |
| | | * 返回分层结构的流程数据,包含所有状态(已到达和未到达的) |
| | | * |
| | | * @param gdWorkOrderFlow 查询参数 |
| | | * @return 分层结构的流程数据 |
| | | */ |
| | | // @GetMapping("/list") |
| | | // @ApiOperationSupport(order = 2) |
| | | // @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow") |
| | | // public R<IPage<GdWorkOrderFlowVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow, Query query) { |
| | | // IPage<GdWorkOrderFlowEntity> pages = gdWorkOrderFlowService.page(Condition.getPage(query), Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class)); |
| | | // return R.data(GdWorkOrderFlowWrapper.build().pageVO(pages)); |
| | | // } |
| | | @GetMapping("/list") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "工单流程列表", notes = "传入gdWorkOrderFlow") |
| | | public R<List<WorkOrderStageVO>> list(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow) { |
| | | // 手动构建查询条件,避免 Long 类型字段使用 LIKE 导致 Kingbase8 类型错误 |
| | | QueryWrapper<GdWorkOrderFlowEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); |
| | | |
| | | // 处理 workOrderId (Long 类型,使用 EQ 而非 LIKE) |
| | | Object workOrderId = gdWorkOrderFlow.get("workOrderId"); |
| | | if (workOrderId != null && !"".equals(workOrderId.toString())) { |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getWorkOrderId, Long.parseLong(workOrderId.toString())); |
| | | } |
| | | |
| | | // 处理 type 字段 (String 类型,可以使用 LIKE) |
| | | Object type = gdWorkOrderFlow.get("type"); |
| | | if (type != null && !"".equals(type.toString())) { |
| | | queryWrapper.lambda().like(GdWorkOrderFlowEntity::getType, type.toString()); |
| | | } |
| | | queryWrapper.lambda().orderByDesc(GdWorkOrderFlowEntity::getCreateTime); |
| | | |
| | | // 调用服务层方法获取分层结构的流程数据 |
| | | List<WorkOrderStageVO> stages = gdWorkOrderFlowService.getHierarchicalFlow(queryWrapper); |
| | | |
| | | return R.data(stages); |
| | | } |
| | | |
| | | /** |
| | | * 流程记录表 列表 |
| | | */ |
| | | @GetMapping("/patrolList") |
| | | @ApiOperationSupport(order = 2) |
| | | @ApiOperation(value = "巡查流程列表", notes = "传入gdWorkOrderFlow") |
| | | public R<List<GdWorkOrderFlowVO>> patrolList(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow) { |
| | | // 手动构建查询条件,避免 Long 类型字段使用 LIKE 导致 Kingbase8 类型错误 |
| | | QueryWrapper<GdWorkOrderFlowEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); |
| | | |
| | | // 处理 workOrderId (Long 类型,使用 EQ 而非 LIKE) |
| | | Object workOrderId = gdWorkOrderFlow.get("workOrderId"); |
| | | if (workOrderId != null && !"".equals(workOrderId.toString())) { |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getWorkOrderId, Long.parseLong(workOrderId.toString())); |
| | | } |
| | | |
| | | // 处理 type 字段 (String 类型,可以使用 LIKE) |
| | | Object type = gdWorkOrderFlow.get("type"); |
| | | if (type != null && !"".equals(type.toString())) { |
| | | queryWrapper.lambda().like(GdWorkOrderFlowEntity::getType, type.toString()); |
| | | } |
| | | queryWrapper.lambda().orderByAsc(GdWorkOrderFlowEntity::getCreateTime); |
| | | List<GdWorkOrderFlowEntity> list = gdWorkOrderFlowService.list(queryWrapper); |
| | | return R.data(GdWorkOrderFlowWrapper.build().entityVOList(list)); |
| | | } |
| | | |
| | | /** |
| | | * 流程记录表 自定义分页 |
| | | */ |
| | | @GetMapping("/page") |
| | | @ApiOperationSupport(order = 3) |
| | | @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow") |
| | | public R<IPage<GdWorkOrderFlowVO>> page(GdWorkOrderFlowVO gdWorkOrderFlow, Query query) { |
| | | IPage<GdWorkOrderFlowVO> pages = gdWorkOrderFlowService.selectGdWorkOrderFlowPage(Condition.getPage(query), gdWorkOrderFlow); |
| | | return R.data(pages); |
| | | } |
| | | // @GetMapping("/page") |
| | | // @ApiOperationSupport(order = 3) |
| | | // @ApiOperation(value = "分页", notes = "传入gdWorkOrderFlow") |
| | | // public R<IPage<GdWorkOrderFlowVO>> page(GdWorkOrderFlowVO gdWorkOrderFlow, Query query) { |
| | | // IPage<GdWorkOrderFlowVO> pages = gdWorkOrderFlowService.selectGdWorkOrderFlowPage(Condition.getPage(query), gdWorkOrderFlow); |
| | | // return R.data(pages); |
| | | // } |
| | | |
| | | /** |
| | | * 流程记录表 新增 |
| | |
| | | @ApiOperation(value = "导出数据", notes = "传入gdWorkOrderFlow") |
| | | @ApiIgnore |
| | | public void exportGdWorkOrderFlow(@ApiIgnore @RequestParam Map<String, Object> gdWorkOrderFlow, BladeUser bladeUser, HttpServletResponse response) { |
| | | QueryWrapper<GdWorkOrderFlowEntity> queryWrapper = Condition.getQueryWrapper(gdWorkOrderFlow, GdWorkOrderFlowEntity.class); |
| | | //if (!AuthUtil.isAdministrator()) { |
| | | // queryWrapper.lambda().eq(GdWorkOrderFlow::getTenantId, bladeUser.getTenantId()); |
| | | //} |
| | | // 手动构建查询条件,避免 Long 类型字段使用 LIKE 导致 Kingbase8 类型错误 |
| | | QueryWrapper<GdWorkOrderFlowEntity> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); |
| | | |
| | | // 处理 workOrderId (Long 类型,使用 EQ 而非 LIKE) |
| | | Object workOrderId = gdWorkOrderFlow.get("workOrderId"); |
| | | if (workOrderId != null && !"".equals(workOrderId.toString())) { |
| | | queryWrapper.lambda().eq(GdWorkOrderFlowEntity::getWorkOrderId, Long.parseLong(workOrderId.toString())); |
| | | } |
| | | |
| | | // 处理 type 字段 (String 类型,可以使用 LIKE) |
| | | Object type = gdWorkOrderFlow.get("type"); |
| | | if (type != null && !"".equals(type.toString())) { |
| | | queryWrapper.lambda().like(GdWorkOrderFlowEntity::getType, type.toString()); |
| | | } |
| | | |
| | | List<GdWorkOrderFlowExcel> list = gdWorkOrderFlowService.exportGdWorkOrderFlow(queryWrapper); |
| | | ExcelUtil.export(response, "流程记录表数据" + DateUtil.time(), "流程记录表数据表", list, GdWorkOrderFlowExcel.class); |
| | | } |