Browse Source

盘点+其他功能

dev
常熟吴彦祖 3 weeks ago
parent
commit
97f7c77516
  1. 20
      src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java
  2. 12
      src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java
  3. 20
      src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml

20
src/main/java/com/gaotao/modules/autoWareHourceHaian/mapper/HaiAnNotifyDetailQueryMapper.java

@ -89,19 +89,31 @@ public interface HaiAnNotifyDetailQueryMapper {
/**
* @author rqrq
* @Description 查询需要解除预留的标签ID仍读取老handling_unit - rqrq
* @Description 查询需要解除预留的标签ID按大site映射subsite集合约束handling_unit.site避免跨站点误取 - rqrq
* @param site 大工厂site用于site_sub反查允许的小site集合 - rqrq
* @param notifyNo 领料单号对应reserve_order_ref1 - rqrq
* @param itemNo 行号字符串对应reserve_order_ref2 - rqrq
* @param subSite 子站点可空传入时做额外精确收敛 - rqrq
*/
List<String> haiAnGetReservedLabelsToRelease(
@Param("site") String site,
@Param("notifyNo") String notifyNo,
@Param("itemNo") String itemNo
@Param("itemNo") String itemNo,
@Param("subSite") String subSite
);
/**
* @author rqrq
* @Description 解除handling_unit预留字段避免强制完成后标签仍被锁定 - rqrq
* @Description 解除handling_unit预留字段按大site映射subsite集合限制更新范围避免跨站点误解锁 - rqrq
* @param site 大工厂site用于site_sub反查允许的小site集合 - rqrq
* @param notifyNo 领料单号对应reserve_order_ref1 - rqrq
* @param itemNo 行号字符串对应reserve_order_ref2 - rqrq
* @param subSite 子站点可空传入时做额外精确收敛 - rqrq
*/
void haiAnReleaseHandlingUnitReserve(
@Param("site") String site,
@Param("notifyNo") String notifyNo,
@Param("itemNo") String itemNo
@Param("itemNo") String itemNo,
@Param("subSite") String subSite
);
}

12
src/main/java/com/gaotao/modules/autoWareHourceHaian/service/impl/HaiAnNotifyDetailQueryServiceImpl.java

@ -112,10 +112,12 @@ public class HaiAnNotifyDetailQueryServiceImpl implements HaiAnNotifyDetailQuery
);
String itemNoStr = String.valueOf(data.getItemNo());
// 调用标签查询收集待解除预留的标签ID关键入参notifyNo+itemNo用于精确定位失败会导致标签仍处于reserve_flag=Y - rqrq
// 调用标签查询收集待解除预留的标签ID先按大site反查可用subsite集合再以notifyNo+itemNo定位可选subsite进一步收敛避免跨站点误取 - rqrq
List<String> labelIds = haiAnNotifyDetailQueryMapper.haiAnGetReservedLabelsToRelease(
data.getSite(),
data.getNotifyNo(),
itemNoStr
itemNoStr,
data.getSubSite()
);
// 调用订单更新将transport_flag改为Y关键入参site+notifyNo+itemNo避免误改其它行失败将回滚本次强制完成 - rqrq
@ -135,10 +137,12 @@ public class HaiAnNotifyDetailQueryServiceImpl implements HaiAnNotifyDetailQuery
);
}
if (labelIds != null && !labelIds.isEmpty()) {
// 调用标签更新解除reserve字段关键入参notifyNo+itemNo用于精准解锁失败会阻塞后续发料 - rqrq
// 调用标签更新解除reserve字段更新范围按大site映射出的subsite集合限制避免误解锁其它站点标签失败会阻塞后续发料 - rqrq
haiAnNotifyDetailQueryMapper.haiAnReleaseHandlingUnitReserve(
data.getSite(),
data.getNotifyNo(),
itemNoStr
itemNoStr,
data.getSubSite()
);
}

20
src/main/resources/mapper/autoWareHourceHaian/HaiAnNotifyDetailQueryMapper.xml

@ -143,16 +143,24 @@
AND remark LIKE '%' + #{soorderNo} + '%'
</update>
<!-- rqrq - 查询需解除预留的标签ID(标签主表仍使用handling_unit) -->
<!-- rqrq - 查询需解除预留的标签ID:按大site映射subsite集合约束handling_unit.site,避免跨站点误解锁 -->
<select id="haiAnGetReservedLabelsToRelease" resultType="java.lang.String">
SELECT unit_id
FROM handling_unit WITH (NOLOCK)
WHERE reserve_flag = 'Y'
AND reserve_order_ref1 = #{notifyNo}
AND reserve_order_ref2 = CAST(#{itemNo} AS VARCHAR)
AND UPPER(site) IN (
SELECT UPPER(subsiteid)
FROM site_sub WITH (NOLOCK)
WHERE UPPER(siteid) = UPPER(#{site})
)
<if test="subSite != null and subSite != ''">
AND UPPER(site) = UPPER(#{subSite})
</if>
</select>
<!-- rqrq - 解除标签预留字段,防止标签被遗留锁定 -->
<!-- rqrq - 解除标签预留字段:按大site映射subsite集合限制更新范围,防止跨站点误解锁 -->
<update id="haiAnReleaseHandlingUnitReserve">
UPDATE handling_unit
SET reserve_flag = 'N',
@ -162,6 +170,14 @@
WHERE reserve_flag = 'Y'
AND reserve_order_ref1 = #{notifyNo}
AND reserve_order_ref2 = CAST(#{itemNo} AS VARCHAR)
AND UPPER(site) IN (
SELECT UPPER(subsiteid)
FROM site_sub WITH (NOLOCK)
WHERE UPPER(siteid) = UPPER(#{site})
)
<if test="subSite != null and subSite != ''">
AND UPPER(site) = UPPER(#{subSite})
</if>
</update>
</mapper>
Loading…
Cancel
Save