diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java index ed3148461..f45b03691 100644 --- a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/dto/feedback/FeedbackAppDTO.java @@ -52,4 +52,5 @@ public class FeedbackAppDTO { @Schema(description="创建时间") private LocalDateTime createTime; + } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java index 36300ca39..d394837d8 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/FeedbackController.java @@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.admin.api.feign.RemoteDictService; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; @@ -41,6 +42,9 @@ public class FeedbackController { private final FeedbackService feedbackService; + + private final RemoteDictService remoteDictService; + /** * 分页查询 * @param page 分页对象 @@ -173,4 +177,10 @@ public class FeedbackController { wrapper.eq(FeedbackEntity::getId,id); return R.ok(feedbackService.list(wrapper)); } + + @Operation(summary = "获取反馈类型" , description = "获取反馈类型" ) + @GetMapping("/app/getFeedbackType" ) + public R getFeedbackType() { + return R.ok(remoteDictService.getDictByType("feedback_type")); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java index 23b5757b0..481a4ac9d 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MaintenanceOrderController.java @@ -6,8 +6,10 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.integrated.entity.MaintenanceOrderEntity; import com.bsd.pjcloud.integrated.service.MaintenanceOrderService; import org.springframework.security.access.prepost.PreAuthorize; @@ -19,6 +21,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import com.bsd.pjcloud.integrated.dto.MaintenanceOrderAppCreateDTO; import java.util.List; import java.util.Objects; @@ -118,4 +121,52 @@ public class MaintenanceOrderController { public List export(MaintenanceOrderEntity maintenanceOrder,Long[] ids) { return maintenanceOrderService.list(Wrappers.lambdaQuery(maintenanceOrder).in(ArrayUtil.isNotEmpty(ids), MaintenanceOrderEntity::getId, ids)); } + + /** + * App端-维修申请新增 + * @param dto 维修工单申请参数 + * @return R + */ + @PostMapping("/app/apply") + @Operation(summary = "App端-维修申请新增", description = "App端用户提交维修申请") + @SysLog("App端-维修申请新增") + @PreAuthorize("@pms.hasPermission('integrated_maintenanceOrder_add')") + public R appApply(@RequestBody MaintenanceOrderAppCreateDTO dto) { + Long userId = SecurityUtils.getUser().getId(); + MaintenanceOrderEntity bean = BeanUtils.toBean(dto, MaintenanceOrderEntity.class); + bean.setUserId(userId); + return R.ok(maintenanceOrderService.save(bean)); + } + + /** + * App端-我的维修分页列表 + * @param page 分页对象 + * @return R + */ + @GetMapping("/app/my") + @Operation(summary = "App端-我的维修分页列表", description = "App端用户分页查询自己的维修单") + @PreAuthorize("@pms.hasPermission('integrated_maintenanceOrder_view')") + public R myMaintenanceOrders(@ParameterObject Page page) { + Long userId = SecurityUtils.getUser().getId(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(MaintenanceOrderEntity::getUserId, userId); + return R.ok(maintenanceOrderService.page(page, wrapper)); + } + + /** + * App端-我的维修单详情 + * @param id 维修单ID + * @return R + */ + @GetMapping("/app/my/{id}") + @Operation(summary = "App端-我的维修单详情", description = "App端用户查看自己维修单详情") + @PreAuthorize("@pms.hasPermission('integrated_maintenanceOrder_view')") + public R myMaintenanceOrderDetail(@PathVariable("id") Long id) { + Long userId = SecurityUtils.getUser().getId(); + MaintenanceOrderEntity entity = maintenanceOrderService.getById(id); + if (entity == null || !Objects.equals(entity.getUserId(), userId)) { + return R.failed("无权查看该维修单"); + } + return R.ok(entity); + } } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MaintenanceOrderEntity.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MaintenanceOrderEntity.java index 963d1c6aa..ad159bd5e 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MaintenanceOrderEntity.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/entity/MaintenanceOrderEntity.java @@ -30,9 +30,9 @@ public class MaintenanceOrderEntity extends Model { private Long id; /** - * 标题 + * 设备名称 */ - @Schema(description="标题") + @Schema(description="设备名称") private String title; /** @@ -74,7 +74,7 @@ public class MaintenanceOrderEntity extends Model { /** * 发现地点 */ - @Schema(description="发现地点") + @Schema(description="设备位置") private String location; /** @@ -130,4 +130,12 @@ public class MaintenanceOrderEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + + + /** + * 维修类型 + */ + @Schema(description="维修类型") + private Long maintainType; } \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MaintenanceOrderMapper.xml b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MaintenanceOrderMapper.xml index d5c31edcd..227ef9a9d 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MaintenanceOrderMapper.xml +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/resources/mapper/MaintenanceOrderMapper.xml @@ -21,5 +21,6 @@ + \ No newline at end of file