package com.glxp.api.controller.dev; import cn.hutool.core.bean.BeanUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.dev.DeviceChangeOrderItemEntity; import com.glxp.api.req.dev.DeviceChangeOrderDetailQuery; import com.glxp.api.req.dev.DeviceChangeOrderParam; import com.glxp.api.req.dev.DeviceChangeOrderQuery; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.service.dev.DeviceChangeOrderService; import com.glxp.api.vo.dev.DeviceChangeOrderVo; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.List; @RestController @Slf4j @RequestMapping @RequiredArgsConstructor @Api("变更单相关") public class DeviceChangeOrderController extends BaseController { private final DeviceChangeOrderService deviceChangeOrderService; /** * 变更单列表 * * @param query * @return */ @AuthRuleAnnotation("") @PostMapping("/udi/device/changeOrder/page") public BaseResponse page(@RequestBody DeviceChangeOrderQuery query) { AuthAdmin user = super.getUser(); PageHelper.startPage(query.getPage(), query.getLimit()); List list = deviceChangeOrderService.listByVo(query, user); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse simpleResponse = new PageSimpleResponse(); simpleResponse.setTotal(pageInfo.getTotal()); simpleResponse.setList(BeanUtil.copyToList(pageInfo.getList(), DeviceChangeOrderVo.class)); return ResultVOUtils.success(simpleResponse); } /** * 草稿保存变更单 * * @param param * @return */ @AuthRuleAnnotation("") @PostMapping("/udi/device/changeOrder/draft/save") public BaseResponse draftSave(@RequestBody @Valid DeviceChangeOrderParam param) { AuthAdmin user = super.getUser(); deviceChangeOrderService.saveDraftOrder(user, param); return ResultVOUtils.successMsg("添加成功"); } /** * 保存变更单 * * @param param * @return */ @AuthRuleAnnotation("") @PostMapping("/udi/device/changeOrder/save") public BaseResponse save(@RequestBody @Valid DeviceChangeOrderParam param) { AuthAdmin user = super.getUser(); deviceChangeOrderService.saveOrder(user, param); return ResultVOUtils.successMsg("添加成功"); } /** * 删除变更单 * * @param deleteRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/udi/device/changeOrder/del") public BaseResponse delOrder(@RequestBody DeleteRequest deleteRequest) { deviceChangeOrderService.delOrder(deleteRequest); return ResultVOUtils.successMsg("删除成功!"); } /** * 接收设备 * * @param orderId 变更单id * @param remark 备注 * @return */ @AuthRuleAnnotation("") @GetMapping("/udi/device/changeOrder/confirm/{orderId}") public BaseResponse confirm(@PathVariable Long orderId, String remark) { AuthAdmin user = super.getUser(); deviceChangeOrderService.confirm(orderId, remark, user, false); return ResultVOUtils.successMsg("确认成功"); } /** * 拒收设备 * * @param orderId 变更单id * @param remark 备注 * @return */ @AuthRuleAnnotation("") @GetMapping("/udi/device/changeOrder/reject/{orderId}") public BaseResponse reject(@PathVariable Long orderId, String remark) { AuthAdmin user = super.getUser(); deviceChangeOrderService.confirm(orderId, remark, user, true); return ResultVOUtils.successMsg("确认成功"); } /** * 变更单详情 * * @param query * @return */ @AuthRuleAnnotation("") @PostMapping("/udi/device/changeOrder/detailByUser") public BaseResponse detailByUser(@RequestBody @Valid DeviceChangeOrderDetailQuery query) { AuthAdmin user = super.getUser(); List list = deviceChangeOrderService.detailByUser(user, query); PageInfo pageInfo = new PageInfo<>(list); PageSimpleResponse simpleResponse = new PageSimpleResponse(); simpleResponse.setTotal(pageInfo.getTotal()); simpleResponse.setList(list); return ResultVOUtils.success(simpleResponse); } /** * 取消变更单 * * @param orderId 变更单id * @param remark 备注 * @return */ @AuthRuleAnnotation("") @GetMapping("/udi/device/changeOrder/cancel/{orderId}") public BaseResponse cancel(@PathVariable Long orderId, String remark) { AuthAdmin user = super.getUser(); deviceChangeOrderService.cancel(user, orderId, remark); return ResultVOUtils.successMsg("取消成功"); } }