常熟吴彦祖 3 months ago
parent
commit
50e231ed92
  1. 3
      src/main/resources/mapper/automatedWarehouse/KitTransportMapper.xml
  2. 14
      src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml
  3. 3
      src/main/resources/mapper/customer/ShipmentIssueMapper.xml
  4. 15
      src/main/resources/mapper/notify/IssureNotifyMapper.xml
  5. 8
      src/main/resources/mapper/notify/NewIssureMapper.xml

3
src/main/resources/mapper/automatedWarehouse/KitTransportMapper.xml

@ -100,9 +100,10 @@
<!-- rqrq - 检查申请单下所有订单是否全部运输完成 -->
<!-- 返回未完成的订单数量,0表示全部完成 -->
<!-- 注意:不能用NOLOCK,结果用于判断是否更新申请单状态,脏读可能导致状态不一致 - rqrq -->
<select id="checkAllTransportFlagCompleted" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM SOIssueNotifyOrderList WITH (NOLOCK)
FROM SOIssueNotifyOrderList
WHERE site = #{site}
AND notify_no = #{notifyNo}
AND (transport_flag IS NULL OR transport_flag != 'Y')

14
src/main/resources/mapper/automatedWarehouse/WcsIntegrationMapper.xml

@ -137,6 +137,7 @@
<!-- ==================== 打托相关SQL - AI制作 ==================== -->
<!-- 检查栈板是否存在并获取栈板信息 - AI制作/rqrq -->
<!-- 注意:不能用NOLOCK,结果用于验证栈板状态后创建任务,脏读可能导致业务错误 - rqrq -->
<select id="getPalletInfo" resultType="java.util.Map">
SELECT
pallet_id,
@ -146,7 +147,7 @@
site,
calling_flag,
remark
FROM pallet WITH (NOLOCK)
FROM pallet
WHERE site = #{site} AND pallet_id = #{palletId} AND is_deleted = '0'
</select>
@ -210,12 +211,12 @@
</select>
<!-- 验证标签 - AI制作 -->
<!-- 优化:添加 WITH (NOLOCK) 避免死锁 - rqrq -->
<!-- 注意:不能用NOLOCK,结果用于验证标签后进行组盘/分拣操作,脏读可能导致业务错误 - rqrq -->
<select id="validateLabel" resultType="java.util.Map">
SELECT site, unit_id as serialNo, part_no as partNo, qty, in_stock_flag as inStockFlag,
unit_type as labelType, batch_no as batchNo, warehouse_id as warehouseId,
location_id as locationId, remark, tid, epc
FROM handling_unit WITH (NOLOCK)
FROM handling_unit
WHERE site = #{site} AND unit_id = #{serialNo}
</select>
@ -388,10 +389,10 @@
</update>
<!-- 检查栈板是否正在被调用 - AI制作 -->
<!-- 优化:添加 WITH (NOLOCK) 避免死锁 - rqrq -->
<!-- 注意:不能用NOLOCK,结果用于判断栈板是否可以操作,脏读可能导致重复调用 - rqrq -->
<select id="checkPalletCallingFlag" resultType="java.lang.String">
SELECT calling_flag
FROM pallet WITH (NOLOCK)
FROM pallet
WHERE site = #{site} AND pallet_id = #{palletId} AND is_deleted = '0'
</select>
@ -732,6 +733,7 @@
</update>
<!-- rqrq - 根据序列号列表查询SOIssueNotifyOrderMaterialList_detail明细 -->
<!-- 注意:不能用NOLOCK,结果用于后续更新out_wcs_flag,脏读可能导致重复处理 - rqrq -->
<select id="getSOIssueNotifyDetailsBySerialNos" resultType="com.gaotao.modules.notify.entity.SOIssueNotifyOrderMaterialListDetail">
SELECT
site,
@ -744,7 +746,7 @@
task_seq AS taskSeq,
out_wcs_flag AS outWcsFlag,
issure_flag AS issureFlag
FROM SOIssueNotifyOrderMaterialList_detail WITH (NOLOCK)
FROM SOIssueNotifyOrderMaterialList_detail
WHERE site = #{site} and out_wcs_flag='N'
<if test="serialNos != null and serialNos.size() > 0">
AND serialNo IN

3
src/main/resources/mapper/customer/ShipmentIssueMapper.xml

@ -19,8 +19,9 @@
LEFT JOIN area ar WITH (NOLOCK) ON a.production_area = ar.area_id
WHERE a.site=#{site} AND a.notify_no=#{notifyNo} AND a.order_type='shipment'
</select>
<!-- 注意:不能用NOLOCK,结果用于生成新的item_no插入记录,脏读可能导致主键冲突 - rqrq -->
<select id="getNextItemForShipmentOrderList" resultType="java.math.BigDecimal">
SELECT ISNULL(MAX(item_no), 0) + 1 FROM SOIssueNotifyOrderList WITH (NOLOCK) WHERE site=#{site} AND notify_no=#{notifyNo} AND order_type='shipment'
SELECT ISNULL(MAX(item_no), 0) + 1 FROM SOIssueNotifyOrderList WHERE site=#{site} AND notify_no=#{notifyNo} AND order_type='shipment'
</select>
<insert id="saveIssueNotifyOrderList">

15
src/main/resources/mapper/notify/IssureNotifyMapper.xml

@ -131,8 +131,9 @@ record_version,out_work_order_flag,project_id,order_type,auth_rule_id,bu)
FROM SOIssueNotifyOrderMaterialList WITH (NOLOCK)
WHERE notify_no=#{notifyNo} AND site=#{site} AND issueType=#{issueType}
</select>
<!-- 注意:不能用NOLOCK,结果用于生成新的item_no插入记录,脏读可能导致主键冲突 - rqrq -->
<select id="getNextItemForSOIssueNotifyOrderList" resultType="BigDecimal">
SELECT ISNULL(MAX(item_no), 0) + 1 FROM SOIssueNotifyOrderList WITH (NOLOCK) WHERE site=#{site} AND notify_no=#{notifyNo}
SELECT ISNULL(MAX(item_no), 0) + 1 FROM SOIssueNotifyOrderList WHERE site=#{site} AND notify_no=#{notifyNo}
</select>
<select id="getProductAreaByPlanner" resultType="String">
select top 1 area_type from sys_product_plannet where site=#{site} and planner=#{planner}
@ -315,9 +316,10 @@ record_version,out_work_order_flag,project_id,order_type,auth_rule_id,bu)
group by g.component_part_no,g.qty_to_issue ,g.partDesc
</select>
<!-- 注意:不能用NOLOCK,结果用于判断是否可以删除订单明细,脏读可能导致错误删除 - rqrq -->
<select id="checkDeleteOrderList" resultType="SOIssueNotifyOrderMaterialListData">
SELECT notify_no, site, item_no, BOMItemNo, ComponentPartNo, QtyToIssue, QtyToIssue_Original
FROM SOIssueNotifyOrderMaterialList WITH (NOLOCK)
FROM SOIssueNotifyOrderMaterialList
WHERE site=#{site} AND notify_no=#{notifyNo} AND ItemNo=#{itemNo,jdbcType=DOUBLE}
</select>
@ -327,9 +329,10 @@ record_version,out_work_order_flag,project_id,order_type,auth_rule_id,bu)
SET status = #{status}
WHERE site = #{site} AND notify_no = #{notifyNo}
</update>
<!-- 注意:不能用NOLOCK,结果用于判断是否可以删除物料明细,脏读可能导致错误删除 - rqrq -->
<select id="checkDeleteMaterial" resultType="SOIssueNotifyOrderMaterialListData">
SELECT notify_no, site, ItemNo, BOMItemNo, ComponentPartNo, QtyToIssue, QtyToIssue_Original
FROM SOIssueNotifyOrderMaterialList WITH (NOLOCK)
FROM SOIssueNotifyOrderMaterialList
WHERE site=#{site} AND notify_no=#{notifyNo} AND ItemNo=#{itemNo} AND BOMItemNo=#{bOMItemNo}
</select>
<select id="deleteNotifyMaterial">
@ -347,19 +350,21 @@ record_version,out_work_order_flag,project_id,order_type,auth_rule_id,bu)
and ItemNo=#{itemNo}
</select>-->
<!-- 注意:不能用NOLOCK,结果用于判断零件是否存在后进行更新操作,脏读可能导致数据不一致 - rqrq -->
<select id="checkOtherPart" resultType="SOIssueNotifyOrderMaterialListData">
SELECT notify_no, site, ItemNo, BOMItemNo, ComponentPartNo, QtyToIssue, QtyToIssue_Original
FROM SOIssueNotifyOrderMaterialList WITH (NOLOCK)
FROM SOIssueNotifyOrderMaterialList
WHERE site=#{site} AND notify_no=#{notifyNo} AND ComponentPartNo=#{componentPartNo}
</select>
<!-- 注意:不能用NOLOCK,结果用于生成新的BOM_item_no插入记录,脏读可能导致主键冲突 - rqrq -->
<select id="getNextBomItemNo" resultType="String">
SELECT #{str}+
CONVERT(VARCHAR(50),isnull( max(CONVERT(int,SUBSTRING(BOMItemNo, LEN(#{str})+1, LEN(BOMItemNo)))+1),1))
FROM SOIssueNotifyOrderMaterialList WITH (NOLOCK)
FROM SOIssueNotifyOrderMaterialList
WHERE site=#{site} AND notify_no=#{notifyNo} AND BOMItemNo LIKE #{str}+'%'
</select>

8
src/main/resources/mapper/notify/NewIssureMapper.xml

@ -175,10 +175,10 @@
<!-- ==================== 新增推送WCS相关SQL - rqrq ==================== -->
<!-- rqrq - 根据条码列表查询handling_unit的reserve_flag -->
<!-- 优化:添加 WITH (NOLOCK) 避免死锁 - rqrq -->
<!-- 注意:不能用NOLOCK,结果用于判断是否可以预留,脏读可能导致重复预留 - rqrq -->
<select id="checkReserveFlagBySerialNos" resultType="java.lang.String">
SELECT reserve_flag
FROM handling_unit WITH (NOLOCK)
FROM handling_unit
WHERE site = #{site}
AND unit_id IN
<foreach collection="serialNos" item="serialNo" open="(" separator="," close=")">
@ -188,10 +188,10 @@
</select>
<!-- rqrq - 根据条码列表查询所有栈板ID -->
<!-- 优化:添加 WITH (NOLOCK) 避免死锁 - rqrq -->
<!-- 注意:不能用NOLOCK,结果用于后续更新栈板calling_flag,脏读可能导致数据不一致 - rqrq -->
<select id="getPalletIdsBySerialNos" resultType="java.lang.String">
SELECT DISTINCT pd.pallet_id
FROM pallet_detail pd WITH (NOLOCK)
FROM pallet_detail pd
WHERE pd.site = #{site}
AND pd.serial_no IN
<foreach collection="serialNos" item="serialNo" open="(" separator="," close=")">

Loading…
Cancel
Save