diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index 031c9177..3ebed3ce 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -61,6 +61,15 @@ public class WmsMaterialCoilController extends BaseController { return iWmsMaterialCoilService.queryPageList(bo, pageQuery); } + /** + * 查询钢卷物料表列表(报表专用,轻量级,仅返回coilId、netWeight、warehouseId、qualityStatus、team) + * 使用与list相同的查询条件,但只返回少量字段以提升传输性能 + */ + @GetMapping("/listForReport") + public List listForReport(WmsMaterialCoilBo bo) { + return iWmsMaterialCoilService.queryReportList(bo); + } + /** * 查询钢卷物料表列表(包含发货绑定增强字段) */ @@ -677,6 +686,16 @@ public class WmsMaterialCoilController extends BaseController { return R.ok(material, "查询成功"); } + /** + * 解除钢卷锁定状态 + * 将钢卷的 exclusiveStatus 字段设置为 0 + */ + @Log(title = "钢卷物料表", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/unlock/{coilId}") + public R unlockCoil(@NotNull(message = "主键不能为空") @PathVariable("coilId") Long coilId) { + return toAjax(iWmsMaterialCoilService.unlockCoil(coilId)); + } } diff --git a/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilReportVo.java b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilReportVo.java new file mode 100644 index 00000000..9c8238f8 --- /dev/null +++ b/klp-wms/src/main/java/com/klp/domain/vo/WmsMaterialCoilReportVo.java @@ -0,0 +1,27 @@ +package com.klp.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 钢卷物料报表VO(轻量级,仅返回报表展示所需字段) + * + * @author Joshi + * @date 2025-07-18 + */ +@Data +public class WmsMaterialCoilReportVo { + + // 钢卷ID 用于导出 + private Long coilId; + // 用于计算 + private BigDecimal netWeight; + // 实际库区ID + private Long warehouseId; + // 质量状态 + private String qualityStatus; + // 班组 + private String team; + +} diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 35462b01..0438d0c7 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.klp.domain.WmsMaterialCoil; import com.klp.domain.vo.WmsMaterialCoilAnnealExportVo; import com.klp.domain.vo.WmsMaterialCoilDeliveryExportVo; +import com.klp.domain.vo.WmsMaterialCoilReportVo; import com.klp.domain.vo.WmsMaterialCoilVo; import com.klp.common.core.mapper.BaseMapperPlus; import org.apache.ibatis.annotations.Param; @@ -98,6 +99,14 @@ List selectDeliveryExportListByCoilIds(@Param(" */ List selectAnnealExportListByCoilIds(@Param("coilIds") java.util.Collection coilIds); + /** + * 分页查询钢卷报表数据(轻量级,仅返回必要字段) + * + * @param lqw 查询条件 + * @return 分页报表数据 + */ + List selectPageReportList(@Param("ew") QueryWrapper lqw); + List selectCoilTrimStatistics(); List selectCategoryWidthStatistics(); diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index d6856913..583716e2 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -314,6 +314,15 @@ public interface IWmsMaterialCoilService { */ String queryEarliestHotRolledMaterial(String enterCoilNo); + /** + * 查询钢卷报表数据(轻量级,仅返回必要字段) + * 使用与分页列表相同的查询条件,但只返回少量字段以提升传输性能 + * + * @param bo 查询条件 + * @return 报表数据 + */ + List queryReportList(WmsMaterialCoilBo bo); + /** * 退火报表导出数据列表(按 coilIds) * @@ -322,6 +331,15 @@ public interface IWmsMaterialCoilService { */ List queryAnnealExportList(WmsMaterialCoilBo bo); + /** + * 解除钢卷锁定状态 + * 将钢卷的 exclusiveStatus 字段设置为 0 + * + * @param coilId 钢卷ID + * @return 操作结果 + */ + Boolean unlockCoil(@NotNull(message = "钢卷ID不能为空") Long coilId); + /** * 导出异常报表(按 coilIds,联查钢卷信息、异常信息、改判原因) * 一个钢卷可能对应多个异常,钢卷信息合并居中,异常信息逐条显示 diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 567104ef..db48d116 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -3050,6 +3050,17 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return wmsMaterialCoilDeliveryExportVos; } + /** + * 查询钢卷报表数据(轻量级,仅返回必要字段) + * 使用与分页列表相同的查询条件,但只返回少量字段以提升传输性能 + */ + @Override + @Transactional(readOnly = true) + public List queryReportList(WmsMaterialCoilBo bo) { + QueryWrapper lqw = buildQueryWrapperPlus(bo); + return baseMapper.selectPageReportList(lqw); + } + /** * 退火报表导出:按 coilIds 查询钢卷 + 退火计划联查数据 */ @@ -5709,5 +5720,20 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return material; } + @Override + public Boolean unlockCoil(Long coilId) { + if (coilId == null) { + throw new RuntimeException("钢卷ID不能为空"); + } + WmsMaterialCoil coil = baseMapper.selectById(coilId); + if (coil == null) { + throw new RuntimeException("钢卷不存在"); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(WmsMaterialCoil::getCoilId, coilId) + .set(WmsMaterialCoil::getExclusiveStatus, 0); + return baseMapper.update(null, updateWrapper) > 0; + } + } diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index e80b5102..5a81ff2e 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -127,7 +127,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" mc.exclusive_status, mc.transfer_type, mc.sale_name AS saleName, - su.nick_name AS saleNickName, w.warehouse_name AS warehouseName, nw.warehouse_name AS nextWarehouseName, aw.actual_warehouse_name AS actualWarehouseName, @@ -163,7 +162,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" LEFT JOIN wms_warehouse w ON mc.warehouse_id = w.warehouse_id LEFT JOIN wms_warehouse nw ON mc.next_warehouse_id = nw.warehouse_id LEFT JOIN wms_actual_warehouse aw ON mc.actual_warehouse_id = aw.actual_warehouse_id - LEFT JOIN sys_user su ON mc.sale_id = su.user_id LEFT JOIN wms_raw_material rm ON mc.item_type = 'raw_material' AND mc.item_id = rm.raw_material_id LEFT JOIN wms_product p ON mc.item_type = 'product' AND mc.item_id = p.product_id LEFT JOIN ( @@ -476,6 +474,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ORDER BY mc.item_type, mc.item_id, w.actual_warehouse_id + + +