package cn.iocoder.yudao.module.mes.controller.admin.wm.sorting;
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortPendingNoticeRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortProductionRequestRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortTaskFinishReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortTaskPageReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortTaskRespVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.wm.sorting.vo.MesWmSortTaskScanReqVO;
|
import cn.iocoder.yudao.module.mes.service.wm.sorting.MesWmSortTaskService;
|
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.validation.Valid;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
/**
|
* 管理后台 - MES 分拣任务
|
*
|
* 需求 5.3:订单分拣 —— 按发货通知单生成分拣任务、扫码校验分拣、完成后触发配送
|
*/
|
@Tag(name = "管理后台 - MES 分拣配送")
|
@RestController
|
@RequestMapping("/mes/wm/sort-task")
|
@Validated
|
public class MesWmSortTaskController {
|
|
@Resource
|
private MesWmSortTaskService sortTaskService;
|
|
@PostMapping("/create-from-notice")
|
@Operation(summary = "按发货通知单生成分拣任务")
|
@Parameter(name = "noticeId", description = "发货通知单编号", required = true)
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:create')")
|
public CommonResult<Long> createSortTaskFromNotice(@RequestParam("noticeId") Long noticeId) {
|
return success(sortTaskService.createSortTaskFromNotice(noticeId));
|
}
|
|
@PostMapping("/scan")
|
@Operation(summary = "扫码分拣:校验条码并累加分拣数量")
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:update')")
|
public CommonResult<Boolean> scanLine(@Valid @RequestBody MesWmSortTaskScanReqVO scanReqVO) {
|
sortTaskService.scanLine(scanReqVO);
|
return success(true);
|
}
|
|
@PutMapping("/finish")
|
@Operation(summary = "完成分拣:校验扫码完整后触发配送出库")
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:update')")
|
public CommonResult<Boolean> finishSortTask(@Valid @RequestBody MesWmSortTaskFinishReqVO finishReqVO) {
|
sortTaskService.finishSortTask(finishReqVO.getId(), finishReqVO.getCarrier(),
|
finishReqVO.getShippingNumber(), finishReqVO.getRemark());
|
return success(true);
|
}
|
|
@PutMapping("/cancel")
|
@Operation(summary = "取消分拣任务")
|
@Parameter(name = "id", description = "分拣任务编号", required = true)
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:update')")
|
public CommonResult<Boolean> cancelSortTask(@RequestParam("id") Long id) {
|
sortTaskService.cancelSortTask(id);
|
return success(true);
|
}
|
|
@DeleteMapping("/delete")
|
@Operation(summary = "删除分拣任务")
|
@Parameter(name = "id", description = "分拣任务编号", required = true)
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:delete')")
|
public CommonResult<Boolean> deleteSortTask(@RequestParam("id") Long id) {
|
sortTaskService.deleteSortTask(id);
|
return success(true);
|
}
|
|
@PutMapping("/update-print-count")
|
@Operation(summary = "记录打印次数")
|
@Parameter(name = "id", description = "分拣任务编号", required = true)
|
public CommonResult<Boolean> updatePrintCount(@RequestParam("id") Long id) {
|
sortTaskService.updatePrintCount(id);
|
return success(true);
|
}
|
|
@PostMapping("/submit-production-request")
|
@Operation(summary = "提交生产申请:为分拣任务涉及的销售订单明细补建生产申请")
|
@Parameter(name = "id", description = "分拣任务编号", required = true)
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:update')")
|
public CommonResult<MesWmSortProductionRequestRespVO> submitProductionRequest(@RequestParam("id") Long id) {
|
return success(sortTaskService.submitProductionRequest(id));
|
}
|
|
@GetMapping("/get")
|
@Operation(summary = "获得分拣任务(含明细与货位指引)")
|
@Parameter(name = "id", description = "分拣任务编号", required = true)
|
public CommonResult<MesWmSortTaskRespVO> getSortTask(@RequestParam("id") Long id) {
|
return success(sortTaskService.getSortTask(id));
|
}
|
|
@GetMapping("/page")
|
@Operation(summary = "获得分拣任务分页")
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:query')")
|
public CommonResult<PageResult<MesWmSortTaskRespVO>> getSortTaskPage(
|
@Valid MesWmSortTaskPageReqVO pageReqVO) {
|
return success(sortTaskService.getSortTaskPage(pageReqVO));
|
}
|
|
@GetMapping("/pending-notice-list")
|
@Operation(summary = "获得可生成分拣任务的发货通知单(待出库且尚无分拣任务)")
|
@Parameter(name = "noticeCode", description = "发货通知单号,模糊匹配")
|
@PreAuthorize("@ss.hasPermission('mes:wm-sort-task:query')")
|
public CommonResult<List<MesWmSortPendingNoticeRespVO>> getPendingNoticeList(
|
@RequestParam(value = "noticeCode", required = false) String noticeCode) {
|
return success(sortTaskService.getPendingNoticeList(noticeCode));
|
}
|
|
}
|