Browse Source

页面功能

dev
常熟吴彦祖 3 weeks ago
parent
commit
e3fd61ea0b
  1. 2
      src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AI_CONTEXT.md
  2. 334
      src/main/java/com/gaotao/modules/autoWareHourceHaian/api/service/impl/HaiAnWmsMessageServiceImpl.java
  3. 31
      src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnBufferZoneConfig.java
  4. 5
      src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/vo/HaiAnWcsCallbackTask.java
  5. 6
      src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnPdaAutoWarehouseMapper.java
  6. 17
      src/main/resources/mapper/autoWareHourceHaian/HaiAnPdaAutoWarehouseMapper.xml

2
src/main/java/com/gaotao/modules/autoWareHourceHaian/HAIAN_AI_CONTEXT.md

@ -57,6 +57,8 @@
- 库外搬运新接口参数为 `site/taskId/palletBarcode/configId/oriStation/toArea/toStation`:其中 `oriStation` 为源点位、`toArea` 必须是 `wcs_area_code`、`toStation` 可空 - rqrq
- 托盘运输在后端需先校验业务区域可解析(`area_id/area_desc` -> `haian_area`),再做 `toArea=wcs_area_code` 映射,确保区域配置、站点分配与下发编码一致 - rqrq
- 栈板人工移动接口(`/haiAnWcsIntegration/removeFromStation`、`/haiAnWcsIntegration/bindPalletToStation`)在本地库更新成功后,最后必须调用 `update-ground-location-status`:移入 `type=1`、移出 `type=2` - rqrq
- 海安 `wcsWareHouse` 回调落 `haian_wcs_callback_task` 时,`to_area` 固定写 `A01`(立库区域);`to_warehouse_id/to_location_id` 必须通过 `site + A01` 查询 `haian_area` 映射获得,禁止写死仓库库位常量 - rqrq
- 海安 `wcsWareHouse` 回调即时状态语义对齐老链路:入库回调保存任务后需执行 `updatePalletDetailWcsFlag(site,palletId)`(`wcs_flag:1->0`),出库回调保存任务后需执行 `reUpdatePalletDetailWcsFlag(site,palletId)`(`wcs_flag:0->1`);出库回调不启用任务状态回写 - rqrq
- 栈板人工移入站点触发海安独立移库服务:按目标 `area` 查询 `haian_area.warehouse_id/location_id`,仅筛选“仓库或库位不一致”的标签进入移库流程;若无差异标签则直接跳过 - rqrq
- 海安托盘移库需按“标签site + 当前warehouse”分组;每组各自生成 `STO/STI` 事务头、事务明细、事务子明细(落老 `trans` 三张表),禁止多site混写单据 - rqrq
- 海安托盘移库主流程仅写 `haian_ifs_pallet_move_queue`,不在提交时立即修改标签库位;`serial_no_str` 必须按分号保存本条队列涉及标签 - rqrq

334
src/main/java/com/gaotao/modules/autoWareHourceHaian/api/service/impl/HaiAnWmsMessageServiceImpl.java

@ -1,6 +1,7 @@
package com.gaotao.modules.autoWareHourceHaian.api.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnAgvCallbackRequest;
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnPickingFeedbackRequest;
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnRfidCountVerifyCallbackRequest;
@ -8,30 +9,51 @@ import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnRfidLongMenCallbac
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnRobotErrorRequest;
import com.gaotao.modules.autoWareHourceHaian.api.entity.HaiAnWcsInboundCallbackRequest;
import com.gaotao.modules.autoWareHourceHaian.api.service.HaiAnWmsMessageService;
import com.gaotao.modules.autoWareHourceHaian.entity.HaiAnBufferZoneConfig;
import com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnAreaOption;
import com.gaotao.modules.autoWareHourceHaian.entity.vo.HaiAnWcsCallbackTask;
import com.gaotao.modules.autoWareHourceHaian.mapper.HaiAnPdaAutoWarehouseMapper;
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnInterfaceCallLogService;
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnSysErrorLogService;
import com.gaotao.modules.autoWareHourceHaian.service.HaiAnWcsCallbackTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.Date;
import java.util.UUID;
/**
* @author rqrq
* @Description 海安WMS消息接收服务实现先搭建异常与日志框架具体业务处理后续按接口联调细化 - rqrq
* @Description 海安WMS消息接收服务实现统一处理接口日志异常日志与关键回调落库逻辑 - rqrq
*/
@Slf4j
@Service("haiAnWmsMessageService")
public class HaiAnWmsMessageServiceImpl implements HaiAnWmsMessageService {
/**
* WCS回调任务初始状态已录入等待后续任务处理 - rqrq
*/
private static final String CALLBACK_STATUS_INPUT = "已录入";
/**
* WCS回调任务初始重试次数首次入库固定为0 - rqrq
*/
private static final Integer CALLBACK_DEFAULT_RETRY_COUNT = 0;
@Autowired
private HaiAnInterfaceCallLogService haiAnInterfaceCallLogService;
@Autowired
private HaiAnSysErrorLogService haiAnSysErrorLogService;
@Autowired
private HaiAnWcsCallbackTaskService haiAnWcsCallbackTaskService;
@Autowired
private HaiAnPdaAutoWarehouseMapper haiAnPdaAutoWarehouseMapper;
/**
* @author rqrq
* @Description 统一规范site入参缺失时回落54用于日志完整性避免日志主键为空 - rqrq
@ -94,7 +116,7 @@ public class HaiAnWmsMessageServiceImpl implements HaiAnWmsMessageService {
/**
* @author rqrq
* @Description 处理立库出入库状态回调当前仅完成日志/异常框架业务落库与状态流转后续补充 - rqrq
* @Description 处理海安立库出入库回调按事务类型分流落库取货通知执行幂等校验目标区域固定A01并映射仓库/库位 - rqrq
*/
@Override
@Transactional(rollbackFor = Exception.class)
@ -113,10 +135,47 @@ public class HaiAnWmsMessageServiceImpl implements HaiAnWmsMessageService {
businessKey,
"海安立库出入库状态回调"
);
String messageId = generateMessageId("HAIAN_WCS_WH");
// TODO 执行业务处理按transTypeDesc分发入库/出库/取货通知/取走栈板/异常位处理 - rqrq
updateSuccessLog(logId, messageId, startTime);
return messageId;
// 1. 入参校验必须具备site/palletId/transTypeDesc指定类型还要校验toBarcode - rqrq
validateWcsWareHouseData(data);
String transTypeDesc = data.getTransTypeDesc().trim();
// 2. 统一解析A01区域映射确保to_warehouse_id/to_location_id都来自haian_area配置 - rqrq
HaiAnAreaOption areaOption = getCallbackAreaConfig(site);
String toArea = HaiAnBufferZoneConfig.CALLBACK_DEFAULT_TO_AREA_ID.getValue();
String toWarehouseId = areaOption.getWarehouseId().trim();
String toLocationId = areaOption.getLocationId().trim();
// 3. 按业务类型执行独立保存逻辑取货通知先做幂等校验其余类型直接落任务表 - rqrq
String result;
switch (transTypeDesc) {
case "入库":
result = saveInboundCallbackTask(data, site, toArea, toWarehouseId, toLocationId);
break;
case "出库":
result = saveOutboundCallbackTask(data, site, toArea, toWarehouseId, toLocationId);
break;
case "取货通知":
String pickupToStation = convertStationCode(data.getToBarcode());
if (hasDuplicatePickupNotification(site, data, pickupToStation, toArea)) {
result = "取货通知重复回调已幂等通过,WMS跳过重复保存";
log.info("海安取货通知触发幂等跳过 - rqrq,site={}, palletId={}, taskNo={}, itemNo={}, toStation={}",
site, data.getPalletId(), data.getTaskNo(), data.getItemNo(), pickupToStation);
} else {
result = savePickupNotificationCallbackTask(data, site, toArea, toWarehouseId, toLocationId);
}
break;
case "取走栈板":
result = savePalletRemovalCallbackTask(data, site, toArea, toWarehouseId, toLocationId);
break;
case "异常位处理":
result = saveErrorStationCallbackTask(data, site, toArea, toWarehouseId, toLocationId);
break;
default:
throw new RuntimeException("不支持的事务类型:" + transTypeDesc);
}
updateSuccessLog(logId, result, startTime);
return result;
} catch (Exception e) {
throw buildAndThrowException(
logId,
@ -131,6 +190,269 @@ public class HaiAnWmsMessageServiceImpl implements HaiAnWmsMessageService {
}
}
/**
* @author rqrq
* @Description 校验立库回调核心参数避免关键主键缺失导致错误写入回调任务表 - rqrq
* @param data 回调参数实体至少包含site/palletId/transTypeDesc - rqrq
*/
private void validateWcsWareHouseData(HaiAnWcsInboundCallbackRequest data) {
if (data == null
|| !StringUtils.hasText(data.getSite())
|| !StringUtils.hasText(data.getPalletId())
|| !StringUtils.hasText(data.getTransTypeDesc())) {
throw new RuntimeException("参数验证失败:site/palletId/transTypeDesc不能为空");
}
String transTypeDesc = data.getTransTypeDesc().trim();
if ("入库".equals(transTypeDesc)
|| "取货通知".equals(transTypeDesc)
|| "异常位处理".equals(transTypeDesc)) {
if (!StringUtils.hasText(data.getToBarcode())) {
throw new RuntimeException("参数验证失败:" + transTypeDesc + "场景toBarcode不能为空");
}
}
}
/**
* @author rqrq
* @Description 根据固定业务区域A01查询haian_area映射统一提供to_warehouse_id与to_location_id落库值 - rqrq
* @param site 海安大site - rqrq
* @return HaiAnAreaOption 包含A01对应仓库库位与区域编码配置 - rqrq
*/
private HaiAnAreaOption getCallbackAreaConfig(String site) {
String areaId = HaiAnBufferZoneConfig.CALLBACK_DEFAULT_TO_AREA_ID.getValue();
HaiAnAreaOption areaOption = haiAnPdaAutoWarehouseMapper.getHaianArea(site, areaId);
if (areaOption == null) {
throw new RuntimeException("haian_area缺少固定区域配置:" + areaId + ",无法保存WCS回调任务");
}
if (!StringUtils.hasText(areaOption.getWarehouseId()) || !StringUtils.hasText(areaOption.getLocationId())) {
throw new RuntimeException("haian_area固定区域" + areaId + "缺少仓库或库位配置,无法保存WCS回调任务");
}
return areaOption;
}
/**
* @author rqrq
* @Description 取货通知幂等校验相同业务键消息重复回传时直接放行但不重复落库 - rqrq
* @param site 海安大site - rqrq
* @param data 回调参数用于taskNo/itemNo/palletId/transTypeDesc - rqrq
* @param toStation 归一化后的目标站点编码1099/1093会映射成D1/D2 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @return true表示已存在重复数据false表示需要继续保存 - rqrq
*/
private boolean hasDuplicatePickupNotification(String site, HaiAnWcsInboundCallbackRequest data, String toStation, String toArea) {
QueryWrapper<HaiAnWcsCallbackTask> queryWrapper = new QueryWrapper<HaiAnWcsCallbackTask>();
queryWrapper.eq("site", site)
.eq("pallet_id", data.getPalletId().trim())
.eq("trans_type_desc", data.getTransTypeDesc().trim())
.eq("to_area", toArea);
if (StringUtils.hasText(data.getTaskNo())) {
queryWrapper.eq("task_no", data.getTaskNo().trim());
} else {
queryWrapper.isNull("task_no");
}
if (data.getItemNo() != null) {
queryWrapper.eq("item_no", data.getItemNo());
} else {
queryWrapper.isNull("item_no");
}
if (StringUtils.hasText(toStation)) {
queryWrapper.eq("to_station", toStation);
} else {
queryWrapper.isNull("to_station");
}
return haiAnWcsCallbackTaskService.count(queryWrapper) > 0;
}
/**
* @author rqrq
* @Description 处理站点编码兼容WCS回传1099/1093时映射成D1/D2其余编码保持不变 - rqrq
* @param stationCode WCS回传站点编码 - rqrq
* @return 标准化后的站点编码空值直接返回空 - rqrq
*/
private String convertStationCode(String stationCode) {
if (!StringUtils.hasText(stationCode)) {
return stationCode;
}
String normalizeCode = stationCode.trim();
if ("1099".equals(normalizeCode)) {
return "D1";
}
if ("1093".equals(normalizeCode)) {
return "D2";
}
return normalizeCode;
}
/**
* @author rqrq
* @Description 保存入库回调任务to_area固定A01to_warehouse_id/to_location_id来自haian_area映射 - rqrq
* @param data WCS入库回调参数 - rqrq
* @param site 海安工厂编码 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @param toWarehouseId 目标仓库由haian_area映射 - rqrq
* @param toLocationId 目标库位由haian_area映射 - rqrq
* @return 保存结果提示 - rqrq
*/
private String saveInboundCallbackTask(HaiAnWcsInboundCallbackRequest data,
String site,
String toArea,
String toWarehouseId,
String toLocationId) {
HaiAnWcsCallbackTask callbackTask = new HaiAnWcsCallbackTask();
callbackTask.setSite(site);
callbackTask.setPalletId(data.getPalletId().trim());
callbackTask.setTransTypeDesc(data.getTransTypeDesc().trim());
callbackTask.setToArea(toArea);
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setToStation(StringUtils.hasText(data.getToBarcode()) ? data.getToBarcode().trim() : null);
callbackTask.setTaskNo(StringUtils.hasText(data.getTaskNo()) ? data.getTaskNo().trim() : null);
callbackTask.setItemNo(data.getItemNo());
callbackTask.setStatus(CALLBACK_STATUS_INPUT);
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(CALLBACK_DEFAULT_RETRY_COUNT);
callbackTask.setRemark("WCS立库入库回调");
haiAnWcsCallbackTaskService.save(callbackTask);
// 立即更新部分状态入库回调先把本托盘增量明细置为已提交避免重复推送历史增量 - rqrq
haiAnPdaAutoWarehouseMapper.updatePalletDetailWcsFlag(site, data.getPalletId().trim());
return "入库回调数据已保存,等待定时任务处理";
}
/**
* @author rqrq
* @Description 保存出库回调任务目标站点统一记为Virtual_ASto_area固定A01并写入haian回调表 - rqrq
* @param data WCS出库回调参数 - rqrq
* @param site 海安工厂编码 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @param toWarehouseId 目标仓库由haian_area映射 - rqrq
* @param toLocationId 目标库位由haian_area映射 - rqrq
* @return 保存结果提示 - rqrq
*/
private String saveOutboundCallbackTask(HaiAnWcsInboundCallbackRequest data,
String site,
String toArea,
String toWarehouseId,
String toLocationId) {
HaiAnWcsCallbackTask callbackTask = new HaiAnWcsCallbackTask();
callbackTask.setSite(site);
callbackTask.setPalletId(data.getPalletId().trim());
callbackTask.setTransTypeDesc(data.getTransTypeDesc().trim());
callbackTask.setToArea(toArea);
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setToStation(HaiAnBufferZoneConfig.BUFFER_Station_ID.getValue());
callbackTask.setTaskNo(StringUtils.hasText(data.getTaskNo()) ? data.getTaskNo().trim() : null);
callbackTask.setItemNo(data.getItemNo());
callbackTask.setStatus(CALLBACK_STATUS_INPUT);
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(CALLBACK_DEFAULT_RETRY_COUNT);
callbackTask.setRemark("WCS立库出库回调");
haiAnWcsCallbackTaskService.save(callbackTask);
// 立即更新部分状态可能是移库出库- rqrq
// updateOrderTaskStatusForOutCallback(data); 禁用立库回传任务信息不准 - rqrq
haiAnPdaAutoWarehouseMapper.reUpdatePalletDetailWcsFlag(site, data.getPalletId().trim());
return "出库回调数据已保存,等待定时任务处理";
}
/**
* @author rqrq
* @Description 保存取货通知回调任务执行站点编码归一化后落库目标区域固定A01 - rqrq
* @param data WCS取货通知回调参数 - rqrq
* @param site 海安工厂编码 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @param toWarehouseId 目标仓库由haian_area映射 - rqrq
* @param toLocationId 目标库位由haian_area映射 - rqrq
* @return 保存结果提示 - rqrq
*/
private String savePickupNotificationCallbackTask(HaiAnWcsInboundCallbackRequest data,
String site,
String toArea,
String toWarehouseId,
String toLocationId) {
HaiAnWcsCallbackTask callbackTask = new HaiAnWcsCallbackTask();
callbackTask.setSite(site);
callbackTask.setPalletId(data.getPalletId().trim());
callbackTask.setTransTypeDesc(data.getTransTypeDesc().trim());
callbackTask.setToArea(toArea);
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setToStation(convertStationCode(data.getToBarcode()));
callbackTask.setTaskNo(StringUtils.hasText(data.getTaskNo()) ? data.getTaskNo().trim() : null);
callbackTask.setItemNo(data.getItemNo());
callbackTask.setStatus(CALLBACK_STATUS_INPUT);
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(CALLBACK_DEFAULT_RETRY_COUNT);
callbackTask.setRemark("WCS立库取货通知回调");
haiAnWcsCallbackTaskService.save(callbackTask);
return "取货通知回调数据已保存,等待定时任务处理";
}
/**
* @author rqrq
* @Description 保存取走栈板回调任务不再执行站点占用状态改写只负责回调任务落库 - rqrq
* @param data WCS取走栈板回调参数 - rqrq
* @param site 海安工厂编码 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @param toWarehouseId 目标仓库由haian_area映射 - rqrq
* @param toLocationId 目标库位由haian_area映射 - rqrq
* @return 保存结果提示 - rqrq
*/
private String savePalletRemovalCallbackTask(HaiAnWcsInboundCallbackRequest data,
String site,
String toArea,
String toWarehouseId,
String toLocationId) {
HaiAnWcsCallbackTask callbackTask = new HaiAnWcsCallbackTask();
callbackTask.setSite(site);
callbackTask.setPalletId(data.getPalletId().trim());
callbackTask.setTransTypeDesc(data.getTransTypeDesc().trim());
callbackTask.setToArea(toArea);
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setToStation(convertStationCode(data.getToBarcode()));
callbackTask.setTaskNo(StringUtils.hasText(data.getTaskNo()) ? data.getTaskNo().trim() : null);
callbackTask.setItemNo(data.getItemNo());
callbackTask.setStatus(CALLBACK_STATUS_INPUT);
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(CALLBACK_DEFAULT_RETRY_COUNT);
callbackTask.setRemark("WCS立库取走栈板回调");
haiAnWcsCallbackTaskService.save(callbackTask);
return "取走栈板回调数据已保存,等待定时任务处理";
}
/**
* @author rqrq
* @Description 保存异常位处理回调任务remark优先使用入参异常原因缺失时回落默认文案 - rqrq
* @param data WCS异常位处理回调参数 - rqrq
* @param site 海安工厂编码 - rqrq
* @param toArea 固定目标区域A01 - rqrq
* @param toWarehouseId 目标仓库由haian_area映射 - rqrq
* @param toLocationId 目标库位由haian_area映射 - rqrq
* @return 保存结果提示 - rqrq
*/
private String saveErrorStationCallbackTask(HaiAnWcsInboundCallbackRequest data,
String site,
String toArea,
String toWarehouseId,
String toLocationId) {
HaiAnWcsCallbackTask callbackTask = new HaiAnWcsCallbackTask();
callbackTask.setSite(site);
callbackTask.setPalletId(data.getPalletId().trim());
callbackTask.setTransTypeDesc(data.getTransTypeDesc().trim());
callbackTask.setToArea(toArea);
callbackTask.setToWarehouseId(toWarehouseId);
callbackTask.setToLocationId(toLocationId);
callbackTask.setToStation(StringUtils.hasText(data.getToBarcode()) ? data.getToBarcode().trim() : null);
callbackTask.setTaskNo(StringUtils.hasText(data.getTaskNo()) ? data.getTaskNo().trim() : null);
callbackTask.setItemNo(data.getItemNo());
callbackTask.setStatus(CALLBACK_STATUS_INPUT);
callbackTask.setCreatedTime(new Date());
callbackTask.setRetryCount(CALLBACK_DEFAULT_RETRY_COUNT);
callbackTask.setRemark(StringUtils.hasText(data.getRemark()) ? data.getRemark().trim() : "WCS立库异常位处理回调");
haiAnWcsCallbackTaskService.save(callbackTask);
return "异常位处理回调数据已保存,等待定时任务处理";
}
/**
* @author rqrq
* @Description 处理栈板RFID拣货反馈当前仅完成日志/异常框架分拣对账与回写逻辑后续补充 - rqrq

31
src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/HaiAnBufferZoneConfig.java

@ -0,0 +1,31 @@
package com.gaotao.modules.autoWareHourceHaian.entity;
/**
* @author rqrq
* @Description 海安立库过渡站点与回调默认区域常量统一维护A01与Virtual_AS相关配置避免多处硬编码漂移 - rqrq
*/
public enum HaiAnBufferZoneConfig {
/**
* 立库回调默认目标区域IDhaian_area.area_id - rqrq
*/
CALLBACK_DEFAULT_TO_AREA_ID("A01"),
/**
* 立库过渡站点站点ID - rqrq
*/
BUFFER_Station_ID("Virtual_AS");
private final String value;
HaiAnBufferZoneConfig(String value) {
this.value = value;
}
/**
* @author rqrq
* @Description 获取配置值供海安回调处理和默认站点逻辑复用 - rqrq
*/
public String getValue() {
return value;
}
}

5
src/main/java/com/gaotao/modules/autoWareHourceHaian/entity/vo/HaiAnWcsCallbackTask.java

@ -48,6 +48,11 @@ public class HaiAnWcsCallbackTask {
*/
private String toLocationId;
/**
* 目标业务区域固定A01立库区域 - rqrq
*/
private String toArea;
/**
* 处理状态 - rqrq
*/

6
src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnPdaAutoWarehouseMapper.java

@ -365,6 +365,12 @@ public interface HaiAnPdaAutoWarehouseMapper {
*/
void updatePalletDetailWcsFlag(@Param("site") String site, @Param("palletId") String palletId);
/**
* @author rqrq
* @Description 出库回调即时回写将已提交标记wcs_flag从0恢复为1保持与老链路移库出库可继续追踪语义一致 - rqrq
*/
void reUpdatePalletDetailWcsFlag(@Param("site") String site, @Param("palletId") String palletId);
/**
* @author rqrq
* @Description 查询指定wcs_flag明细供组盘推送组装增量报文使用 - rqrq

17
src/main/resources/mapper/autoWareHourceHaian/HaiAnPdaAutoWarehouseMapper.xml

@ -106,7 +106,7 @@
<!-- rqrq - 校验大site和小subsite映射关系 -->
<select id="countSiteSubMapping" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM site_sub
FROM site_sub WITH (NOLOCK)
WHERE siteid = #{site}
AND subsiteid = #{subSite}
</select>
@ -114,7 +114,7 @@
<!-- rqrq - 按子site反查所属大site,供海安IFS移库队列执行时查询大site库位主数据 -->
<select id="getSiteBySubSite" resultType="java.lang.String">
SELECT TOP 1 siteid
FROM site_sub
FROM site_sub WITH (NOLOCK)
WHERE subsiteid = #{subSite}
ORDER BY siteid
</select>
@ -131,7 +131,7 @@
remove_able AS removeAble,
pack_able AS packAble,
wcs_area_code AS wcsAreaCode
FROM haian_area
FROM haian_area WITH (NOLOCK)
WHERE site = #{site}
AND area_id = #{areaId}
</select>
@ -148,7 +148,7 @@
remove_able AS removeAble,
pack_able AS packAble,
wcs_area_code AS wcsAreaCode
FROM haian_area
FROM haian_area WITH (NOLOCK)
WHERE site = #{site}
AND area_desc = #{areaDesc}
</select>
@ -654,6 +654,15 @@
AND wcs_flag = 1
</update>
<!-- rqrq - 出库回调后恢复wcs_flag=1,对齐老链路reUpdatePalletDetailWcsFlag语义 -->
<update id="reUpdatePalletDetailWcsFlag">
UPDATE haian_pallet_detail
SET wcs_flag = 1
WHERE site = #{site}
AND pallet_id = #{palletId}
AND wcs_flag = 0
</update>
<!-- rqrq - 查询指定wcs_flag增量明细,供组盘推送拼装层位与标签报文 -->
<select id="getPalletDetailsByWcsFlag" resultType="com.gaotao.modules.autoWareHourceHaian.entity.pda.HaiAnPalletDetailRow">
SELECT

Loading…
Cancel
Save