From b3656098f3cadcf4bc68f993f5eee263fcfc0918 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Thu, 11 Dec 2025 20:22:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(wcs):=20=E6=96=B0=E5=A2=9E=E7=AB=8B?= =?UTF-8?q?=E5=BA=93=E7=A9=BA=E6=89=98=E7=9B=98=E7=B1=BB=E5=9E=8B=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在PalletData实体中增加stationCode字段 - 新增三个数据库操作接口:查询立库空托盘、根据家族获取托盘类型、修改托盘类型 - 实现对应的XML映射SQL逻辑 - 新增EmptyPalletTypeController控制器提供REST接口 - 支持分页查询立库内空托盘列表 - 提供根据托盘家族获取可用托盘类型的接口 - 实现修改托盘类型的业务逻辑 - 注释掉SOIssueNotifyOrderMaterialListDetailMapper中的task_ref条件限制 --- .../controller/EmptyPalletTypeController.java | 128 ++++++++++++++++++ .../modules/warehouse/dao/PalletMapper.java | 29 ++++ .../modules/warehouse/entity/PalletData.java | 6 + ...sueNotifyOrderMaterialListDetailMapper.xml | 2 +- .../mapper/warehouse/PalletMapper.xml | 69 ++++++++++ 5 files changed, 233 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gaotao/modules/automatedWarehouse/controller/EmptyPalletTypeController.java diff --git a/src/main/java/com/gaotao/modules/automatedWarehouse/controller/EmptyPalletTypeController.java b/src/main/java/com/gaotao/modules/automatedWarehouse/controller/EmptyPalletTypeController.java new file mode 100644 index 0000000..fde82ee --- /dev/null +++ b/src/main/java/com/gaotao/modules/automatedWarehouse/controller/EmptyPalletTypeController.java @@ -0,0 +1,128 @@ +package com.gaotao.modules.automatedWarehouse.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.gaotao.common.utils.PageUtils; +import com.gaotao.common.utils.R; +import com.gaotao.modules.base.entity.PalletType; +import com.gaotao.modules.sys.controller.AbstractController; +import com.gaotao.modules.warehouse.dao.PalletMapper; +import com.gaotao.modules.warehouse.entity.PalletData; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @Description 立库内空托盘类型修改Controller - rqrq + * + *

功能说明:

+ * + * + * @Author rqrq + * @Date 2025/12/11 + */ +@Slf4j +@RestController +@RequestMapping("/wcsSystem/emptyPalletType") +public class EmptyPalletTypeController extends AbstractController { + + @Autowired + private PalletMapper palletMapper; + + /** + * @Description 查询立库内空托盘列表 - rqrq + * @param data 查询条件 + * @return R + * @author rqrq + */ + @PostMapping(value="/list") + @ResponseBody + public R list(@RequestBody PalletData data) throws Exception { + log.info("开始查询立库内空托盘列表 - rqrq"); + + // 参数校验 - rqrq + if (!StringUtils.hasText(data.getSite())) { + throw new RuntimeException("工厂编码不能为空"); + } + + // 设置分页参数 - rqrq + int pageNum = data.getPage() != null ? data.getPage() : 1; + int pageSize = data.getLimit() != null ? data.getLimit() : 20; + + // 查询立库内空托盘 - rqrq + IPage pageResult = palletMapper.selectEmptyPalletsInWarehouse( + new Page<>(pageNum, pageSize), + data + ); + + PageUtils pageUtils = new PageUtils(pageResult); + + log.info("查询立库内空托盘列表完成 - rqrq,共{}条", pageResult.getTotal()); + return R.ok().put("page", pageUtils); + } + + /** + * @Description 根据pallet_family获取可选的托盘类型列表 - rqrq + * @param params 参数(site, palletFamily) + * @return R + * @author rqrq + */ + @PostMapping(value="/getPalletTypes") + @ResponseBody + public R getPalletTypes(@RequestBody Map params) throws Exception { + log.info("开始获取托盘类型列表 - rqrq"); + + String site = (String) params.get("site"); + String palletFamily = (String) params.get("palletFamily"); + + // 参数校验 - rqrq + if (!StringUtils.hasText(site) || !StringUtils.hasText(palletFamily)) { + throw new RuntimeException("参数不能为空"); + } + + // 查询托盘类型 - rqrq + List rows = palletMapper.getPalletTypesByFamily(site, palletFamily); + + log.info("获取托盘类型列表完成 - rqrq,共{}条", rows.size()); + return R.ok().put("rows", rows); + } + + /** + * @Description 修改托盘类型 - rqrq + * @param params 参数(site, palletId, palletType) + * @return R + * @author rqrq + */ + @PostMapping(value="/updateType") + @ResponseBody + public R updateType(@RequestBody Map params) throws Exception { + log.info("开始修改托盘类型 - rqrq"); + + String site = (String) params.get("site"); + String palletId = (String) params.get("palletId"); + String palletType = (String) params.get("palletType"); + + // 参数校验 - rqrq + if (!StringUtils.hasText(site) || !StringUtils.hasText(palletId) || !StringUtils.hasText(palletType)) { + throw new RuntimeException("参数不能为空"); + } + + // 获取当前用户 - rqrq + String username = getUser() != null ? getUser().getUsername() : "SYSTEM"; + + // 修改托盘类型 - rqrq + palletMapper.updatePalletType(site, palletId, palletType, username); + + log.info("修改托盘类型完成 - rqrq,palletId={},newType={}", palletId, palletType); + return R.ok(); + } +} + diff --git a/src/main/java/com/gaotao/modules/warehouse/dao/PalletMapper.java b/src/main/java/com/gaotao/modules/warehouse/dao/PalletMapper.java index 5d8b1f2..2855587 100644 --- a/src/main/java/com/gaotao/modules/warehouse/dao/PalletMapper.java +++ b/src/main/java/com/gaotao/modules/warehouse/dao/PalletMapper.java @@ -90,4 +90,33 @@ public interface PalletMapper extends BaseMapper { */ void batchInsertPallet(@Param("list") List palletList); + /** + * @Description 查询立库内空托盘列表 - rqrq + * @param page 分页参数 + * @param queryDto 查询条件 + * @return 空托盘列表 + * @author rqrq + */ + IPage selectEmptyPalletsInWarehouse(IPage page, @Param("query") PalletData queryDto); + + /** + * @Description 根据pallet_family获取可选的托盘类型列表 - rqrq + * @param site 工厂编码 + * @param palletFamily 托盘大分类 + * @return 托盘类型列表 + * @author rqrq + */ + List getPalletTypesByFamily(@Param("site") String site, @Param("palletFamily") String palletFamily); + + /** + * @Description 修改托盘类型 - rqrq + * @param site 工厂编码 + * @param palletId 托盘ID + * @param palletType 托盘类型 + * @param updatedBy 更新人 + * @author rqrq + */ + void updatePalletType(@Param("site") String site, @Param("palletId") String palletId, + @Param("palletType") String palletType, @Param("updatedBy") String updatedBy); + } diff --git a/src/main/java/com/gaotao/modules/warehouse/entity/PalletData.java b/src/main/java/com/gaotao/modules/warehouse/entity/PalletData.java index e6cc356..2ea4634 100644 --- a/src/main/java/com/gaotao/modules/warehouse/entity/PalletData.java +++ b/src/main/java/com/gaotao/modules/warehouse/entity/PalletData.java @@ -80,4 +80,10 @@ public class PalletData extends Pallet { */ @TableField(exist = false) private Integer limit; + + /** + * 所在站点编码(关联agv_station表)- rqrq + */ + @TableField(exist = false) + private String stationCode; } \ No newline at end of file diff --git a/src/main/resources/mapper/notify/SOIssueNotifyOrderMaterialListDetailMapper.xml b/src/main/resources/mapper/notify/SOIssueNotifyOrderMaterialListDetailMapper.xml index 3244f4a..f55cd2a 100644 --- a/src/main/resources/mapper/notify/SOIssueNotifyOrderMaterialListDetailMapper.xml +++ b/src/main/resources/mapper/notify/SOIssueNotifyOrderMaterialListDetailMapper.xml @@ -9,7 +9,7 @@ SET out_wcs_flag = 'Y' WHERE site = #{site} AND serialNo = #{serialNo} - AND task_ref = #{taskRef} + diff --git a/src/main/resources/mapper/warehouse/PalletMapper.xml b/src/main/resources/mapper/warehouse/PalletMapper.xml index cd9a942..4953c74 100644 --- a/src/main/resources/mapper/warehouse/PalletMapper.xml +++ b/src/main/resources/mapper/warehouse/PalletMapper.xml @@ -234,4 +234,73 @@ + + + + + + + + + UPDATE pallet WITH (ROWLOCK) + SET pallet_type = #{palletType}, + updated_by = #{updatedBy}, + updated_time = GETDATE() + WHERE site = #{site} + AND pallet_id = #{palletId} + +