package com.klp.controller; import java.util.List; import java.util.Arrays; import java.util.Map; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import com.klp.common.annotation.RepeatSubmit; import com.klp.common.annotation.Log; import com.klp.common.core.controller.BaseController; import com.klp.common.core.domain.PageQuery; import com.klp.common.core.domain.R; import com.klp.common.core.validate.AddGroup; import com.klp.common.core.validate.EditGroup; import com.klp.common.enums.BusinessType; import com.klp.common.utils.poi.ExcelUtil; import com.klp.domain.vo.WmsTransferOrderItemVo; import com.klp.domain.bo.WmsTransferOrderItemBo; import com.klp.service.IWmsTransferOrderItemService; import com.klp.common.core.page.TableDataInfo; /** * 调拨单明细 * * @author klp * @date 2026-03-27 */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/wms/transferOrderItem") public class WmsTransferOrderItemController extends BaseController { private final IWmsTransferOrderItemService iWmsTransferOrderItemService; /** * 查询调拨单明细列表 */ @GetMapping("/list") public TableDataInfo list(WmsTransferOrderItemBo bo, PageQuery pageQuery) { return iWmsTransferOrderItemService.queryPageList(bo, pageQuery); } /** * 导出调拨单明细列表 */ @Log(title = "调拨单明细", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(WmsTransferOrderItemBo bo, HttpServletResponse response) { List list = iWmsTransferOrderItemService.queryList(bo); ExcelUtil.exportExcel(list, "调拨单明细", WmsTransferOrderItemVo.class, response); } /** * 获取调拨单明细详细信息 * * @param itemId 主键 */ @GetMapping("/{itemId}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long itemId) { return R.ok(iWmsTransferOrderItemService.queryById(itemId)); } /** * 新增调拨单明细 */ @Log(title = "调拨单明细", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) { return toAjax(iWmsTransferOrderItemService.insertByBo(bo)); } /** * 修改调拨单明细 */ @Log(title = "调拨单明细", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody WmsTransferOrderItemBo bo) { return toAjax(iWmsTransferOrderItemService.updateByBo(bo)); } /** * 删除调拨单明细 * * @param itemIds 主键串 */ @Log(title = "调拨单明细", businessType = BusinessType.DELETE) @DeleteMapping("/{itemIds}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] itemIds) { return toAjax(iWmsTransferOrderItemService.deleteWithValidByIds(Arrays.asList(itemIds), true)); } /** * 根据itemId和itemType匹配或新增物料 * itemType: raw_material-原料, product-成品 */ @GetMapping("/itemType/matchOrCreate") public R matchOrCreateMaterial(@RequestParam @NotNull(message = "itemId不能为空") Long itemId, @RequestParam @NotNull(message = "itemType不能为空") String itemType) { return R.ok(iWmsTransferOrderItemService.matchOrCreateMaterial(itemId, itemType)); } /** * 根据钢卷列表匹配或创建物料 */ @PostMapping("/itemType/matchOrCreateByCoils") public R> matchOrCreateItemByCoilIds(@RequestBody List pairs) { return R.ok(iWmsTransferOrderItemService.matchOrCreateItemByCoilIds(pairs)); } /** * 批量修改调拨单明细 */ @Log(title = "调拨单明细", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/batchUpdate") public R batchUpdate(@RequestBody List list) { iWmsTransferOrderItemService.batchUpdateItems(list); return R.ok(); } /** * 批量新增调拨单明细 */ @Log(title = "调拨单明细", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/batch") public R batchAdd(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) { return toAjax(iWmsTransferOrderItemService.batchInsert(bo)); } /** * 确认调拨 */ @Log(title = "调拨单明细", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/confirm") public R confirm(@Validated(AddGroup.class) @RequestBody WmsTransferOrderItemBo bo) { return toAjax(iWmsTransferOrderItemService.confirmTransfer(bo)); } /** * 批量确认调拨 */ @Log(title = "调拨单明细", businessType = BusinessType.UPDATE) @RepeatSubmit() @PostMapping("/batchConfirm") public R batchConfirm(@Validated(AddGroup.class) @RequestBody List boList) { return toAjax(iWmsTransferOrderItemService.batchConfirmTransfer(boList)); } /** * 取消调拨 */ @Log(title = "调拨单明细", businessType = BusinessType.DELETE) @PostMapping("/cancel") public R cancel(@NotNull(message = "明细id不能为空") Long orderItemId) { return toAjax(iWmsTransferOrderItemService.cancelTransfer(orderItemId)); } }