需求:高标报价单基础信息表新增 决策完成日期字段(decision_time);已通过的报价单,历史数据做更新,更新逻辑如下
如果为决策会决策 即=通过状态的 上会结果维护记录表 中的最大日期,如果没有则拿决策清单记录表最大的修改日期更新
如果为战区决策,则=通过状态的 K2最大回传日期
如果还是没有,则拿单据的最后更新时间记录。

-- 更新bs_quotation_base表的decision_time字段
UPDATE bs_quotation_base
SET decision_time = CASE 
    -- 决策类型为决策会决策(decision_type=10)
    WHEN decision_type = 10 THEN (
        COALESCE(
            -- 优先取bs_quotation_meeting_result_log表中通过状态的最大日期
            (SELECT MAX(update_time) 
             FROM bs_quotation_meeting_result_log m
             WHERE m.quotation_no = bs_quotation_base.quotation_no 
             AND m.result_type = 1),
            -- 如果没有,则取bs_decision_inventory表的最大修改日期
            (SELECT MAX(update_time) 
             FROM bs_decision_inventory 
             WHERE business_no = bs_quotation_base.quotation_no),
            -- 如果还是没有,则取单据的最后更新时间
            update_time
        )
    )
    -- 决策类型为战区决策(decision_type=20)
    WHEN decision_type = 20 THEN (
        COALESCE(
            -- 取k2_log表中通过状态的最大回传日期
            (SELECT MAX(createtime) 
             FROM k2_log 
             WHERE BOID = bs_quotation_base.quotation_no 
               AND OPE_TYPE = 4),
            -- 如果为空,则取单据的最后更新时间
            update_time
        )
    )
    -- 其他情况,直接取单据的最后更新时间
    ELSE update_time
END
WHERE status = '3' and is_del = 0;