diff --git a/src/main/java/com/xujie/sys/modules/orderIssure/entity/SOIssueNotifyHeaderData.java b/src/main/java/com/xujie/sys/modules/orderIssure/entity/SOIssueNotifyHeaderData.java index 40892ef9..ec992996 100644 --- a/src/main/java/com/xujie/sys/modules/orderIssure/entity/SOIssueNotifyHeaderData.java +++ b/src/main/java/com/xujie/sys/modules/orderIssure/entity/SOIssueNotifyHeaderData.java @@ -34,4 +34,7 @@ public class SOIssueNotifyHeaderData extends SOIssueNotifyHeader { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date needDate; + + /** 为 true 时主表按派工单明细子表最早要求发料时间(needDate)升序排序 */ + private Boolean orderByMinChildNeedDate; } diff --git a/src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml b/src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml index 8eec86c4..755063bb 100644 --- a/src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml +++ b/src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml @@ -175,6 +175,13 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu) left join sys_user b on a.UserName=b.username left join eam_WorkShop c on b.workShopId=c.workShopId LEFT JOIN SOIssueNotifyOrderList d on a.site=d.site and a.NotifyNo=d.NotifyNo and d.ItemNo = '1' + + LEFT JOIN ( + SELECT site, NotifyNo, MIN(needDate) AS minChildNeedDate + FROM SOIssueNotifyOrderList + GROUP BY site, NotifyNo + ) ol_need ON a.site = ol_need.site AND a.NotifyNo = ol_need.NotifyNo + @@ -215,7 +222,14 @@ RecordVersion,OutWorkOrderFlag,ProjectID,OrderType,AuthRuleID,bu) AND b.workShopId in ${query.workShopId} - order by a.NotifyNo + + + order by case when ol_need.minChildNeedDate is null then 1 else 0 end, ol_need.minChildNeedDate asc, a.NotifyNo + + + order by a.NotifyNo + +