Browse Source

fix(production): 修复临期品标签查询逻辑

- 移除DISTINCT关键字优化查询性能
- 调整表连接顺序从LEFT JOIN改为INNER JOIN确保数据一致性
- 修改过期日期计算逻辑使用DATEADD函数替代原有过期天数判断
- 添加CDATA标签处理SQL中的特殊字符比较操作
master
qiankanghui 6 days ago
parent
commit
63211c9230
  1. 17
      src/main/resources/mapper/production/PrintLabelRecordMapper.xml

17
src/main/resources/mapper/production/PrintLabelRecordMapper.xml

@ -270,7 +270,7 @@
<!-- 查询临期品标签(Part表 ExpireDateControlFlag='Y' and ToExpireDays >= 0) --> <!-- 查询临期品标签(Part表 ExpireDateControlFlag='Y' and ToExpireDays >= 0) -->
<select id="selectExpiredLabels" resultType="com.heai.modules.production.entity.PrintLabelRecord"> <select id="selectExpiredLabels" resultType="com.heai.modules.production.entity.PrintLabelRecord">
SELECT DISTINCT
SELECT
plr.id, plr.id,
plr.site, plr.site,
plr.part_no, plr.part_no,
@ -288,11 +288,11 @@
plr.weight, plr.weight,
plr.stagnation_refresh_date, plr.stagnation_refresh_date,
ISNULL(istk.ExpiredDate_new, istk.ExpiredDate) AS expiry_date ISNULL(istk.ExpiredDate_new, istk.ExpiredDate) AS expiry_date
FROM print_label_record plr
left JOIN Part p
ON plr.site = p.Site
AND plr.part_no = p.PartNo
left JOIN InventoryStock istk
FROM PART p
INNER JOIN print_label_record plr
ON plr.Site = p.Site
AND p.PartNo = plr.part_no
INNER JOIN InventoryStock istk
ON plr.site = istk.Site ON plr.site = istk.Site
AND plr.part_no = istk.PartNo AND plr.part_no = istk.PartNo
AND plr.batch_no = istk.BatchNo AND plr.batch_no = istk.BatchNo
@ -300,8 +300,9 @@
AND plr.location_id = istk.LocationID AND plr.location_id = istk.LocationID
WHERE plr.status = '已入库' WHERE plr.status = '已入库'
AND p.ExpireDateControlFlag = 'Y' AND p.ExpireDateControlFlag = 'Y'
AND ISNULL(p.ToExpireDays, 0) >= 0
AND ISNULL(istk.ExpiredDate_new, istk.ExpiredDate) &lt;= GETDATE()
<![CDATA[
AND DATEADD(DAY,-90,ISNULL(istk.ExpiredDate_new, istk.ExpiredDate)) <= GETDATE()
]]>
AND plr.id NOT IN ( AND plr.id NOT IN (
SELECT label_record_id SELECT label_record_id
FROM stagnation_detail FROM stagnation_detail

Loading…
Cancel
Save