首页 > 代码库 > 巴枪操作关联车辆记录

巴枪操作关联车辆记录

表结构:
1、deal_countdeal_ip默认为0,取消非空限制
2、表中新增delive_code字段;

代码
3、conf中新增trmsCarTaskSwitch开关
#4、conf中新增kafka开关
5、新增mapp.xml配置;

select * from a;



-- 分中心数据下发接收表


drop table tt_trms_car_task;
CREATE TABLE tt_trms_car_task(
  id NUMBER(18) PRIMARY KEY ,
  original_id  NUMBER(18) not null, -- 版本号id
  send_car_tm DATE  ,
  require_id VARCHAR(50),
  task_id VARCHAR(100) , -- 任务id
  position_no VARCHAR(10) ,
  line_code VARCHAR(200) ,
  batch_code VARCHAR(50) , -- 卡口编码
  plan_start_tm DATE , 
  zone_code VARCHAR(50) , -- 中转场代码(网点)
  plate_num VARCHAR(50) ,
  del_flag VARCHAR(1) , 
  send_tm DATE, 
  deal_tm DATE  , -- 处理时间
  deal_flg number(2) default 0, -- 处理标记
  deal_ip varchar2(30)  , 
  deal_count number(2)  , 
  insert_tm timestamp(6) default SYSDATE, --入库时间
  delive_code VARCHAR2(50) -- 分中心代码
);

-- 序列
CREATE SEQUENCE SEQ_TT_TRMS_CAR_TASK  
START WITH 1
INCREMENT BY 1
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE


-- 中间表

drop table tt_trms_car_task_mid;
CREATE TABLE tt_trms_car_task_mid(
  id NUMBER(18) PRIMARY KEY ,
  original_id  NUMBER(18) not null, -- 版本号id
  send_car_tm DATE  ,
  require_id VARCHAR(50),
  task_id VARCHAR(100) , -- 任务id
  position_no VARCHAR(10) ,
  line_code VARCHAR(200) ,
  batch_code VARCHAR(50) , -- 卡口编码
  plan_start_tm DATE , 
  zone_code VARCHAR(50) , -- 中转场代码(网点)
  plate_num VARCHAR(50) ,
  del_flag VARCHAR(1) , 
  send_tm DATE, 
  deal_tm DATE  , -- 处理时间
  deal_flg number(2) default 0, -- 处理标记
  deal_ip varchar2(30)  , 
  deal_count number(2)  , 
  insert_tm timestamp(6) default SYSDATE, --入库时间
  delive_code VARCHAR2(50) -- 分中心代码
);

CREATE SEQUENCE SEQ_TT_TRMS_CAR_TASK_MID  
START WITH 1
INCREMENT BY 1
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE


-- 下发表

drop table tt_trms_car_task_dist;
CREATE TABLE tt_trms_car_task_dist(
  id NUMBER(18) PRIMARY KEY ,
  original_id  NUMBER(18) not null, -- 版本号id
  send_car_tm DATE  ,
  require_id VARCHAR(50),
  task_id VARCHAR(100) , -- 任务id
  position_no VARCHAR(10) ,
  line_code VARCHAR(200) ,
  batch_code VARCHAR(50) , -- 卡口编码
  plan_start_tm DATE , 
  zone_code VARCHAR(50) , -- 中转场代码(网点)
  plate_num VARCHAR(50) ,
  del_flag VARCHAR(1) , 
  send_tm DATE, 
  deal_tm DATE  , -- 处理时间
  deal_flg number(2) default 0, -- 处理标记
  deal_ip varchar2(30)  , 
  deal_count number(2)  , 
  insert_tm timestamp(6) default SYSDATE, --入库时间
  delive_code VARCHAR2(50) -- 分中心代码
);

CREATE SEQUENCE SEQ_TT_TRMS_CAR_TASK_DIST
START WITH 1
INCREMENT BY 1
NOMAXVALUE
MINVALUE 1
NOCYCLE
NOCACHE

INSERT INTO tt_trms_car_task_mid SELECT * FROM  tt_trms_car_task;

SELECT M.* ,ROWID AS rid FROM tt_trms_car_task_mid M WHERE  ROWNUM=1


SELECT t.*,ROWID FROM tt_trms_car_task t


逻辑:
根据“任务ID+网点+卡口编码”为主键判断,如果该记录不存在,则新增该记录;
根据“任务ID+网点+卡口编码”为主键判断,如果该记录存在,则判断“版本号ID”是否比现有的版本号
ID大,如果大则根据“任务ID+网点+卡口编码”覆盖,否则该数据抛弃。



CREATE OR REPLACE PROCEDURE PROC_TT_AS_OUT_IDENT_MID
(
    P_HASH_NUM      IN  NUMBER,                 --hash并发数量
    P_HASH_VALUE    IN  NUMBER,                 --hash并发值
    P_BATCH_NUM     IN  NUMBER  DEFAULT 5000,   --处理数据量
    P_COMMIT_NUM    IN  NUMBER  DEFAULT 500     --批次提交数据量
) AS
V_COUNT         INT DEFAULT 0;  --定义参数以"V_"开头定义

    V_BATCH         INT DEFAULT 0;  --是否需要跟新:0->新增,1->跟新BA,生产出港,99->抛弃
    V_BA_RID        VARCHAR2(500);
    V_S_ID          NUMBER;
    V_BATCH_OUT     INT DEFAULT -1;  --99->抛弃,0—>新增
    V_AS_OUT_ID     NUMBER;
    V_SQL_NUM       NUMBER;

/*
    CREATE DATE:2016-10-20
    CREATE BY:674051
    DESC  :TT_AS_OUT_IDENT_MID中间表数据关联tm_zno_transit表数据生产出港数据

            业务逻辑:首先同TT_AS_OUT_IDENT_BA表进行比较,
              i :MID中数据比ba表中数据级别高,生产新下发数据
              II:MID和BA中级别一致,但是mid中数据较新且weight+des_zno+product不一致,生产新下发数据
              III:其他状态数据:抛弃

    REMARK:记录修改日志(修改人 修改版本号 修改时间,修改内容)
*/

BEGIN
    FOR RX IN (
        SELECT
            T.*,ROWID  as rid
        FROM
            TT_AS_OUT_IDENT_MID T
        WHERE
            T.DEAL_FLG = 0
            AND DBMS_UTILITY.GET_HASH_VALUE(T.WAYBILL_NO,0,P_HASH_NUM)=P_HASH_VALUE
            AND ROWNUM <= P_BATCH_NUM
    )  LOOP


        V_BATCH:=0 ; --默认新增ba数据
        V_BATCH_OUT :=0; --默认新生成出港数据
        --从BA表中抓取基准数据

        FOR R0 IN (
            SELECT
                T.ROWID AS RID ,T.*
            FROM
                TT_AS_OUT_IDENT_BA T
            WHERE
                T.WAYBILL_NO = RX.WAYBILL_NO
        )  LOOP

            V_BA_RID:=R0.RID;

            IF(RX.SRC=http://www.mamicode.com/R0.SRC  AND RX.INPUT_TM> R0.INPUT_TM>

  

巴枪操作关联车辆记录