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
+ *
+ *
功能说明:
+ *
+ * - 查询立库内的空托盘(wcs_location不为空且empty_flag='Y')
+ * - 根据pallet_family获取可选的托盘类型
+ * - 修改托盘的pallet_type
+ *
+ *
+ * @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}
+
+