Files
klp-oa/klp-wms/src/main/java/com/klp/controller/WmsDeliveryPlanController.java
Joshi d80a3b2cc9 feat(wms): 新增收货报表统计功能
- 在 IWmsDeliveryPlanService 接口中新增 getReceivingReport 方法
- 在 WmsDeliveryPlanController 控制器中新增 /receivingReport 接口
- 在 WmsDeliveryPlanMapper 中新增收货报表相关查询方法
- 在 WmsDeliveryPlanMapper.xml 中新增收货报表的 SQL 查询语句
- 新增 WmsReceivingReportByTypeVo、WmsReceivingReportResultVo 和
  WmsReceivingReportSummaryVo 三个 VO 类用于收货报表数据传输
- 完善了送货报表 SQL 查询逻辑,增加与 wms_delivery_plan 表的关联及 plan_type 过滤条件
2025-12-12 10:38:55 +08:00

154 lines
5.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.controller;
import java.util.Date;
import java.util.List;
import java.util.Arrays;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.klp.domain.vo.*;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;
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.bo.WmsDeliveryPlanBo;
import com.klp.service.IWmsDeliveryPlanService;
import com.klp.common.core.page.TableDataInfo;
/**
* 发货计划
*
* @author klp
* @date 2025-11-25
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/wms/deliveryPlan")
public class WmsDeliveryPlanController extends BaseController {
private final IWmsDeliveryPlanService iWmsDeliveryPlanService;
/**
* 查询发货计划列表
*/
@GetMapping("/list")
public TableDataInfo<WmsDeliveryPlanVo> list(WmsDeliveryPlanBo bo, PageQuery pageQuery) {
return iWmsDeliveryPlanService.queryPageList(bo, pageQuery);
}
/**
* 导出发货计划列表
*/
@Log(title = "发货计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(WmsDeliveryPlanBo bo, HttpServletResponse response) {
List<WmsDeliveryPlanVo> list = iWmsDeliveryPlanService.queryList(bo);
ExcelUtil.exportExcel(list, "发货计划", WmsDeliveryPlanVo.class, response);
}
/**
* 获取发货计划详细信息
*
* @param planId 主键
*/
@GetMapping("/{planId}")
public R<WmsDeliveryPlanVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long planId) {
return R.ok(iWmsDeliveryPlanService.queryById(planId));
}
/**
* 新增发货计划
*/
@Log(title = "发货计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsDeliveryPlanBo bo) {
return toAjax(iWmsDeliveryPlanService.insertByBo(bo));
}
/**
* 修改发货计划
*/
@Log(title = "发货计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsDeliveryPlanBo bo) {
return toAjax(iWmsDeliveryPlanService.updateByBo(bo));
}
/**
* 删除发货计划
*
* @param planIds 主键串
*/
@Log(title = "发货计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{planIds}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] planIds) {
return toAjax(iWmsDeliveryPlanService.deleteWithValidByIds(Arrays.asList(planIds), true));
}
/**
* 获取发货计划统计信息
*
* @param planId 计划ID可选
*/
@GetMapping("/statistics")
public R<List<WmsDeliveryPlanStatisticsVo>> getStatistics(@RequestParam(required = false) Long planId) {
List<WmsDeliveryPlanStatisticsVo> statistics = iWmsDeliveryPlanService.getDeliveryPlanStatistics(planId);
return R.ok(statistics);
}
/**
* 获取发货报表统计信息
*
* @param startTime 开始时间
* @param endTime 结束时间
*/
@GetMapping("/report")
public R<WmsDeliveryReportResultVo> getDeliveryReport(
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
WmsDeliveryReportResultVo report = iWmsDeliveryPlanService.getDeliveryReport(startTime, endTime);
return R.ok(report);
}
/**
* 获取收货报表统计信息planType=1对应钢卷待操作actionType=401
*/
@GetMapping("/receivingReport")
public R<WmsReceivingReportResultVo> getReceivingReport(
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date startTime,
@RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date endTime) {
WmsReceivingReportResultVo report = iWmsDeliveryPlanService.getReceivingReport(startTime, endTime);
return R.ok(report);
}
/**
* 根据计划ID获取可选钢卷列表计划绑定钢卷 - 明细已绑定钢卷
* @param planId 计划ID
*/
@GetMapping("/selectableCoils")
public R<List<WmsMaterialCoilVo>> getSelectableCoils(@RequestParam @NotNull(message = "planId不能为空") Long planId) {
List<WmsMaterialCoilVo> list = iWmsDeliveryPlanService.getSelectableCoilsByPlanId(planId);
return R.ok(list);
}
}