feat: 增加LMS日计划管理接口

This commit is contained in:
zhouz
2026-08-14 15:10:14 +08:00
parent b938547e75
commit 961219ecf6
2 changed files with 434 additions and 0 deletions

View File

@@ -0,0 +1,201 @@
package cn.code.nl.module.lms.controller.admin.dailyplan;
import cn.code.nl.framework.common.pojo.CommonResult;
import cn.code.nl.framework.common.pojo.PageResult;
import cn.code.nl.module.lms.controller.admin.dailyplan.vo.*;
import cn.code.nl.module.lms.service.dailyplan.DailyPlanService;
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 jakarta.validation.constraints.NotNull;
import org.dromara.core.trans.anno.TransMethodResult;
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.code.nl.framework.common.pojo.CommonResult.success;
/** 管理后台 - LMS 日计划。 */
@Tag(name = "管理后台 - LMS 日计划")
@RestController
@RequestMapping("/lms/daily-plan")
@Validated
public class DailyPlanController {
@Resource
private DailyPlanService dailyPlanService;
@GetMapping("/managementPage")
@Operation(summary = "获得日计划管理分页")
@TransMethodResult
@PreAuthorize("@ss.hasPermission('lms:daily-plan:query')")
public CommonResult<PageResult<DailyPlanRespVO>> getManagementPage(@Valid DailyPlanPageReqVO reqVO) {
return success(dailyPlanService.getManagementPage(reqVO));
}
@GetMapping("/workPage")
@Operation(summary = "获得日计划作业分页")
@TransMethodResult
@PreAuthorize("@ss.hasPermission('lms:daily-plan:query')")
public CommonResult<PageResult<DailyPlanRespVO>> getWorkPage(@Valid DailyPlanWorkPageReqVO reqVO) {
return success(dailyPlanService.getWorkPage(reqVO));
}
@GetMapping("/get")
@Operation(summary = "获得日计划详情")
@Parameter(name = "id", description = "日计划标识", required = true)
@TransMethodResult
@PreAuthorize("@ss.hasPermission('lms:daily-plan:query')")
public CommonResult<DailyPlanRespVO> getDailyPlan(@RequestParam("id") @NotNull Long id) {
return success(dailyPlanService.getDailyPlan(id));
}
@GetMapping("/operationLogList")
@Operation(summary = "获得日计划操作日志")
@Parameter(name = "id", description = "日计划标识", required = true)
@TransMethodResult
@PreAuthorize("@ss.hasPermission('lms:daily-plan:query')")
public CommonResult<List<DailyPlanOperationLogRespVO>> getOperationLogList(
@RequestParam("id") @NotNull Long id) {
return success(dailyPlanService.getOperationLogs(id));
}
@GetMapping("/getStrategies")
@Operation(summary = "获得日计划调度策略")
@TransMethodResult
@PreAuthorize("@ss.hasPermission('lms:daily-plan:query')")
public CommonResult<List<DailyPlanStrategyRespVO>> getStrategies() {
return success(dailyPlanService.getStrategies());
}
@PostMapping("/create")
@Operation(summary = "人工创建日计划")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:create')")
public CommonResult<Long> createDailyPlan(@Valid @RequestBody DailyPlanCreateReqVO reqVO) {
return success(dailyPlanService.createManualPlan(reqVO));
}
@PutMapping("/update")
@Operation(summary = "修改人工日计划")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:update')")
public CommonResult<Boolean> updateDailyPlan(@Valid @RequestBody DailyPlanUpdateReqVO reqVO) {
dailyPlanService.updateManualPlan(reqVO);
return success(true);
}
@PutMapping("/startOrder")
@Operation(summary = "开始日计划订单")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:start')")
public CommonResult<Boolean> startOrder(@Valid @RequestBody DailyPlanStartReqVO reqVO) {
dailyPlanService.startOrder(reqVO);
return success(true);
}
@PutMapping("/appendQuantity")
@Operation(summary = "追加日计划订单数量")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:start')")
public CommonResult<Boolean> appendQuantity(@Valid @RequestBody DailyPlanAppendReqVO reqVO) {
dailyPlanService.appendQuantity(reqVO);
return success(true);
}
@PutMapping("/startStocking")
@Operation(summary = "开始备货")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> startStocking(@Valid @RequestBody DailyPlanVersionReqVO reqVO) {
dailyPlanService.startStocking(reqVO);
return success(true);
}
@PutMapping("/cancelStocking")
@Operation(summary = "取消备货")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> cancelStocking(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.cancelStocking(reqVO);
return success(true);
}
@PutMapping("/restoreStocking")
@Operation(summary = "恢复备货")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> restoreStocking(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.restoreStocking(reqVO);
return success(true);
}
@PutMapping("/startSleeving")
@Operation(summary = "开始套管")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> startSleeving(@Valid @RequestBody DailyPlanVersionReqVO reqVO) {
dailyPlanService.startSleeving(reqVO);
return success(true);
}
@PutMapping("/cancelSleeving")
@Operation(summary = "取消套管")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> cancelSleeving(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.cancelSleeving(reqVO);
return success(true);
}
@PutMapping("/restoreSleeving")
@Operation(summary = "恢复套管")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> restoreSleeving(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.restoreSleeving(reqVO);
return success(true);
}
@PutMapping("/cancelOrder")
@Operation(summary = "取消日计划订单")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> cancelOrder(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.cancelOrder(reqVO);
return success(true);
}
@PutMapping("/restoreOrder")
@Operation(summary = "恢复日计划订单")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> restoreOrder(@Valid @RequestBody DailyPlanReasonReqVO reqVO) {
dailyPlanService.restoreOrder(reqVO);
return success(true);
}
@PutMapping("/finishOrder")
@Operation(summary = "结束日计划订单")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:operate')")
public CommonResult<Boolean> finishOrder(@Valid @RequestBody DailyPlanVersionReqVO reqVO) {
dailyPlanService.finishOrder(reqVO);
return success(true);
}
@PutMapping("/updateSort")
@Operation(summary = "批量修改日计划排序")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:schedule')")
public CommonResult<Boolean> updateSort(@Valid @RequestBody DailyPlanSortUpdateReqVO reqVO) {
dailyPlanService.updateSort(reqVO);
return success(true);
}
@PutMapping("/updateWeight")
@Operation(summary = "修改日计划调度权重")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:schedule')")
public CommonResult<Boolean> updateWeight(@Valid @RequestBody DailyPlanWeightUpdateReqVO reqVO) {
dailyPlanService.updateWeight(reqVO);
return success(true);
}
@PutMapping("/updateStrategy")
@Operation(summary = "修改日计划调度策略")
@PreAuthorize("@ss.hasPermission('lms:daily-plan:strategy')")
public CommonResult<Boolean> updateStrategy(@Valid @RequestBody DailyPlanStrategyUpdateReqVO reqVO) {
dailyPlanService.updateStrategy(reqVO);
return success(true);
}
}

View File

@@ -0,0 +1,233 @@
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace LmsDailyPlanApi {
export interface DailyPlan {
appendQty: number;
createTime: string;
creator: string;
dailyPlanId: number;
erpOrderCode?: string;
manualOrderCode?: string;
materialCode: string;
materialId: number;
materialName: string;
materialSpec?: string;
orderEndTime?: string;
orderStartTime?: string;
orderStatus: number;
packingInfo?: string;
planCode: string;
planDate: string;
planQty: number;
previousOrderStatus?: number;
previousSleevingStatus?: number;
previousStockingStatus?: number;
sleevedQty: number;
sleevingCompleteTime?: string;
sleevingStartTime?: string;
sleevingStatus: number;
sortSeq: number;
sourceType: number;
stockedQty: number;
stockingCompleteTime?: string;
stockingStartTime?: string;
stockingStatus: number;
totalQty: number;
updateTime?: string;
updater?: string;
updaterName?: string;
version: number;
weight: number;
}
export interface ManagementPageReq extends PageParam {
materialKeyword?: string;
orderStatus?: number;
planDateEnd?: string;
planDateStart?: string;
planOrOrderCode?: string;
sourceType?: number;
}
export interface WorkPageReq extends PageParam {
materialKeyword?: string;
orderStatus?: number;
planOrOrderCode?: string;
}
export interface CreateReq {
manualOrderCode?: string;
materialCode: string;
materialId: number;
materialName: string;
materialSpec?: string;
packingInfo?: string;
planDate: string;
planQty: number;
sortSeq: number;
weight: number;
}
export interface UpdateReq extends CreateReq {
dailyPlanId: number;
version: number;
}
export interface VersionReq {
id: number;
version: number;
}
export interface StartReq extends VersionReq {
appendQty: number;
}
export interface AppendReq extends VersionReq {
appendQty: number;
}
export interface ReasonReq extends VersionReq {
reason: string;
}
export interface SortUpdateReq {
items: Array<{
id: number;
sortSeq: number;
version: number;
}>;
}
export interface WeightUpdateReq extends VersionReq {
weight: number;
}
export interface StrategyUpdateReq {
strategyMode: number;
strategyType: number;
version: number;
}
export interface OperationLog {
afterValue?: string;
beforeValue?: string;
changeQty?: number;
dailyPlanId: number;
operationLogId: number;
operationReason?: string;
operationTarget: string;
operationTime: string;
operationType: string;
operator: string;
}
export interface Strategy {
cursorDailyPlanId?: number;
strategyId: number;
strategyMode: number;
strategyType: number;
updateTime?: string;
updater?: string;
updaterName?: string;
version: number;
}
}
export function getDailyPlanManagementPage(params: LmsDailyPlanApi.ManagementPageReq) {
return requestClient.get<PageResult<LmsDailyPlanApi.DailyPlan>>(
'/lms/daily-plan/managementPage',
{ params },
);
}
export function getDailyPlanWorkPage(params: LmsDailyPlanApi.WorkPageReq) {
return requestClient.get<PageResult<LmsDailyPlanApi.DailyPlan>>(
'/lms/daily-plan/workPage',
{ params },
);
}
export function getDailyPlan(id: number) {
return requestClient.get<LmsDailyPlanApi.DailyPlan>('/lms/daily-plan/get', {
params: { id },
});
}
export function getDailyPlanOperationLogList(id: number) {
return requestClient.get<LmsDailyPlanApi.OperationLog[]>(
'/lms/daily-plan/operationLogList',
{ params: { id } },
);
}
export function getDailyPlanStrategies() {
return requestClient.get<LmsDailyPlanApi.Strategy[]>(
'/lms/daily-plan/getStrategies',
);
}
export function createDailyPlan(data: LmsDailyPlanApi.CreateReq) {
return requestClient.post<number>('/lms/daily-plan/create', data);
}
export function updateDailyPlan(data: LmsDailyPlanApi.UpdateReq) {
return requestClient.put('/lms/daily-plan/update', data);
}
export function startDailyPlanOrder(data: LmsDailyPlanApi.StartReq) {
return requestClient.put('/lms/daily-plan/startOrder', data);
}
export function appendDailyPlanQuantity(data: LmsDailyPlanApi.AppendReq) {
return requestClient.put('/lms/daily-plan/appendQuantity', data);
}
export function startDailyPlanStocking(data: LmsDailyPlanApi.VersionReq) {
return requestClient.put('/lms/daily-plan/startStocking', data);
}
export function cancelDailyPlanStocking(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/cancelStocking', data);
}
export function restoreDailyPlanStocking(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/restoreStocking', data);
}
export function startDailyPlanSleeving(data: LmsDailyPlanApi.VersionReq) {
return requestClient.put('/lms/daily-plan/startSleeving', data);
}
export function cancelDailyPlanSleeving(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/cancelSleeving', data);
}
export function restoreDailyPlanSleeving(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/restoreSleeving', data);
}
export function cancelDailyPlanOrder(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/cancelOrder', data);
}
export function restoreDailyPlanOrder(data: LmsDailyPlanApi.ReasonReq) {
return requestClient.put('/lms/daily-plan/restoreOrder', data);
}
export function finishDailyPlanOrder(data: LmsDailyPlanApi.VersionReq) {
return requestClient.put('/lms/daily-plan/finishOrder', data);
}
export function updateDailyPlanSort(data: LmsDailyPlanApi.SortUpdateReq) {
return requestClient.put('/lms/daily-plan/updateSort', data);
}
export function updateDailyPlanWeight(data: LmsDailyPlanApi.WeightUpdateReq) {
return requestClient.put('/lms/daily-plan/updateWeight', data);
}
export function updateDailyPlanStrategy(data: LmsDailyPlanApi.StrategyUpdateReq) {
return requestClient.put('/lms/daily-plan/updateStrategy', data);
}