ALTER TABLE record031 ADD COLUMN next_task_ori_line_id VARCHAR(60) COMMENT '新的工单原产线id';
ALTER TABLE record031 ADD COLUMN next_task_new_line_id VARCHAR(60) COMMENT '新的工单新产线id';
INSERT INTO `ver01`(`id`, `version`, `apk_name`, `generate_date`, `note`) VALUES (34, 'ifs.pda.6.4.x.zeson.260602.1', 'ZESON26060201.apk', '2026-06-02 16:42:23', NULL);

DELIMITER //
DROP PROCEDURE if EXISTs `proc_deal_inv22_back_out`;//
DELIMITER ;

DELIMITER //
CREATE PROCEDURE `proc_deal_inv22_back_out`(IN var_serial VARCHAR(60),in ids varchar(60),in types varchar(60),in var_source varchar(60),out int_result int)
begin
		DECLARE ori_weight DECIMAL(20,8) DEFAULT 0;
		#领料单id
		DECLARE id_picking_order VARCHAR(60);
		
		DECLARE cur_date varchar(10);
		
    #退库出库
    set int_result = 0;
		
		#找该流水号最近一次领料记录对应的领料单
		SELECT i22_id_main INTO id_picking_order
		FROM inv22 WHERE i22_var_source = '领料单'
		AND i22_var_serial = var_serial
		ORDER BY i22_date_create DESC 
		LIMIT 1;
		
		IF IFNULL(id_picking_order,'') != '' THEN
			#将此次退库操作记录在对应的领料单中
			INSERT INTO out115(o115_id_o11,o115_id_i22,o115_var_serial,o115_id_back_loc,o115_id_back_i22,o115_flag_received)
			SELECT id_picking_order,ids,var_serial,'','','';
		END IF;
		
		SET cur_date = CURDATE();
		
		#先把删除已上传的 防止重复
		DELETE FROM daily_back_check_rcd WHERE operate_date = cur_date AND serial_no = var_serial;
		#记录在日退库/留用表
		INSERT INTO daily_back_check_rcd(create_time,creator,operate_type,operate_id,serial_no,
		operate_weight,operate_unit,operate_date)
		SELECT i22_date_create,i22_id_creater,'0',ids,i22_var_serial,
		i22_dec_weight,i22_id_unit,DATE_FORMAT(i22_date_create,'%Y-%m-%d')
		FROM inv22
		WHERE i22_id = ids;
		
		DELETE FROM inv21 WHERE i21_var_serial = var_serial;
		
		SELECT i31_dec_end INTO ori_weight
		FROM inv31 WHERE i31_id = var_serial;
		
		#i31_var_cata记录选择的退回仓库
		UPDATE inv31,inv22 
		SET i31_flag_inv = 'back',
		i31_var_remark = i22_var_remark,
		i31_id_loc = '',
		i31_dec_end = i22_dec_weight,
		i31_dec_pack_gross = i22_dec_pack_gross,
		i31_var_cata = i22_var_cata,
		i31_id_source_table = i22_id_source_ori,
		i31_dec_end_qty = IF(i22_dec_qty > i31_dec_in_qty,i31_dec_in_qty,i22_dec_qty),
		i31_flag_half = IF(i22_dec_weight <> ori_weight,'Y',i31_flag_half)
		WHERE i31_id = var_serial
		AND i22_id = ids;
end//
DELIMITER ;